如何在 activity 完成时销毁 Handler 方法?
How to make the Handler method be destroyed when the activity finishes?
在此 activity 结束时,Handler 方法中的计时器继续。
如何在 activity 完成时销毁 Handler 方法?
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
mTextViewCountDown.setTextColor(Color.RED);
}
}, 55000);
在我的例子中,如果我离开 Activity
,我没有“破坏”该方法,但该方法仅在 Activity
处于活动状态时才执行某些操作
像这样:
// Variable of your activity
private static boolean active = false;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
// do something only if Activity is active
if(active) {
mTextViewCountDown.setTextColor(Color.RED);
}
}
}, 55000);
并在 onStart
/ onStop
方法中设置 active
的值:
@Override
public void onStart() {
super.onStart();
active = true;
}
@Override
public void onStop() {
super.onStop();
active = false;
}
这样 handler.postdelay
中的代码将仅在您的 Activity
处于活动状态时执行
你可以使用 onDestroy(); lifecycle method.this 方法在 activity 即将完成时调用,在这个 activity 生命周期方法中你会像这样停止处理程序
@Override
protected void onDestroy() {
Handler handler = new Handler();
handler.postDelayed(new Runnable());
super.onDestroy();
}```
在此 activity 结束时,Handler 方法中的计时器继续。 如何在 activity 完成时销毁 Handler 方法?
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
mTextViewCountDown.setTextColor(Color.RED);
}
}, 55000);
在我的例子中,如果我离开 Activity
,我没有“破坏”该方法,但该方法仅在 Activity
处于活动状态时才执行某些操作
像这样:
// Variable of your activity
private static boolean active = false;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
// do something only if Activity is active
if(active) {
mTextViewCountDown.setTextColor(Color.RED);
}
}
}, 55000);
并在 onStart
/ onStop
方法中设置 active
的值:
@Override
public void onStart() {
super.onStart();
active = true;
}
@Override
public void onStop() {
super.onStop();
active = false;
}
这样 handler.postdelay
中的代码将仅在您的 Activity
处于活动状态时执行
你可以使用 onDestroy(); lifecycle method.this 方法在 activity 即将完成时调用,在这个 activity 生命周期方法中你会像这样停止处理程序
@Override
protected void onDestroy() {
Handler handler = new Handler();
handler.postDelayed(new Runnable());
super.onDestroy();
}```