у меня код у кнопки, где задержка на закрытие активити, как я бы мог по нажатию другой кнопки останавливать его?
package com.talk.talktools;
import android.app.Fragment;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.Toast;
public class fragment1 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment1, container, false);
return v;
}
@Override
public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ImageView imageView2 = view.findViewById(R.id.imageView2);
ImageView imageView = view.findViewById(R.id.imageView);
ImageView imageView3 = view.findViewById(R.id.imageView3);
imageView3.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(view.getContext(), "Ты нашел пасхалку! Теперь закрытие приложения! :)", Toast.LENGTH_SHORT).show();
Toast.makeText(view.getContext(), "У тебя десять секунд!", Toast.LENGTH_SHORT).show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
getActivity().finish();
}
}, 10000); //specify the number of milliseconds
return false;
}
});
View.OnClickListener ocltg = new View.OnClickListener() {
@Override
public void onClick(View v) {
String url = "SECRET";
Intent h = new Intent(Intent.ACTION_VIEW);
h.setData(Uri.parse(url));
startActivity(h);
}
}; imageView3.setOnClickListener(ocltg);
View.OnClickListener ocltgchat = new View.OnClickListener() {
@Override
public void onClick(View v) {
String url = "SECRET";
Intent g = new Intent(Intent.ACTION_VIEW);
g.setData(Uri.parse(url));
startActivity(g);
}
}; imageView.setOnClickListener(ocltgchat);
View.OnClickListener oclf0x1d = new View.OnClickListener() {
@Override
public void onClick(View v) {
String url = "SECRET";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
}; imageView2.setOnClickListener(oclf0x1d);
}
}
Создать переменную как параметр класса
boolean b = true;
При нажатии на кнопку отмены закрытия пиложения
b = false;
Код закрытия приложения
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
if (b)
getActivity().finish();
}
}, 10000); //specify the number of milliseconds
return false;
Не забыть где-то снова менять значение переменной b, чтобы можно было всё таки закрыть приложение через 10 секунд
Помимо этого можно попробовать следующее
1.Измените
handler.postDelayed(Runnable r, long delayMillis)
на
handler.postDelayed(Runnable r, Object token, long delayMillis)
2.Если кнопка Отмены была нажата то
removeCallbacks(Runnable r, Object token)
3.При этом необходимо создать Runnable не внутри, а внешним, так же, как и Handler handler. Ссылка для доп информации https://developer.android.com/reference/android/os/Handler
package com.talk.talktools;
import android.app.Fragment;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.Toast;
public class fragment1 extends Fragment {
boolean breakRun;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment1, container, false);
return v;
}
@Override
public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ImageView imageView2 = view.findViewById(R.id.imageView2);
ImageView imageView = view.findViewById(R.id.imageView);
ImageView imageView3 = view.findViewById(R.id.imageView3);
imageView3.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(view.getContext(), "Ты нашел пасхалку! Теперь закрытие приложения! :)", Toast.LENGTH_SHORT).show();
Toast.makeText(view.getContext(), "У тебя десять секунд!", Toast.LENGTH_SHORT).show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
if(!breakRun){
getActivity().finish();
}
}
}, 10000); //specify the number of milliseconds
return false;
}
});
View.OnClickListener ocltg = new View.OnClickListener() {
@Override
public void onClick(View v) {
breakRun = true;
String url = "SECRET";
Intent h = new Intent(Intent.ACTION_VIEW);
h.setData(Uri.parse(url));
startActivity(h);
}
}; imageView3.setOnClickListener(ocltg);
View.OnClickListener ocltgchat = new View.OnClickListener() {
@Override
public void onClick(View v) {
breakRun = true;
String url = "SECRET";
Intent g = new Intent(Intent.ACTION_VIEW);
g.setData(Uri.parse(url));
startActivity(g);
}
}; imageView.setOnClickListener(ocltgchat);
View.OnClickListener oclf0x1d = new View.OnClickListener() {
@Override
public void onClick(View v) {
breakRun = true;
String url = "SECRET";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
}; imageView2.setOnClickListener(oclf0x1d);
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В приложении есть Google карта, каким образом сделать так, чтобы она отображала только геометки достопримечательностей?
Пытаюсь получить jpg изображение когда сделал build файл jar, делаю так:
В андроид приложении нужно реализовать функциональность чатаИнформация о входящем сообщении приходит через Firebase Push и сохраняется в локальной...
Изучаю JavaПонял что не могу нормально дать определение полиморфизму