我想在一段时间后从主 Intent 执行另一个 Intent ,当我关闭另一个 Intent 时重新执行处理程序。
我的问题是,在由于某种原因执行第二个 Intent 后,程序认为它的 onUserInteraction 方法并重新执行处理程序。
主要 Intent :
handler = new Handler();
r = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
intent = new Intent(DataChecker.this, IdleImages.class);
startActivity(intent);
}
};
startHandler();
}
@Override
public void onUserInteraction() {
// TODO Auto-generated method stub
super.onUserInteraction();
stopHandler();//stop first and then start
startHandler();
}
public void stopHandler() {
handler.removeCallbacks(r);
}
public void startHandler() {
handler.postDelayed(r, 1*60*1000);
}
第二个 Intent :
@Override
public void onSliderClick(SliderView sliderView) {
Intent intent = new Intent();
setResult(2, intent);
finish();
}
当第二个 Intent 关闭时,它应该重新启动计时器。
最佳答案
我通过使用两个事件 onResume()
和 onPause()
来修复它
@Override
public void onPause () {
super.onPause();
Log.e("Yes", "I stoped the handler for you");
stopHandler();
}
@Override
public void onResume() {
super.onResume();
Log.e("Back", "I started the handler for you");
stopHandler();
startHandler();
}
关于Java 处理程序如何在不发送 onUserInteraction 方法的情况下执行 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57955469/