我不确定我是否完全理解你的问题,但是,如果你想Handler
通过活动取消,你可以把它放在onPause
方法中:
@Override
public void onPause() {
super.onPause();
handler.removeCallbacks(runnable);
}
onPause
当即将对用户隐藏活动时,将调用该方法。
重新阅读您的问题后,如果您的意思是BroadcastReceiver
要从您的Activity
类访问类中的处理程序,那么您应该使处理程序成为您活动的成员变量。
public class MyActivity extends Activity {
private Handler mHandler = new Handler();
public class BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive (Context context, Intent intent) {
// ... use mHandler in here ....
mHandler.postDelayed(runnable, 1000);
}
}
// ... rest of the code ...
@Override
public void onPause() {
super.onPause();
handler.removeCallbacks(runnable);
}
}
您可以在您的BroadcastReceiver
和Activity
类中使用处理程序,使用mHandler
. 您必须确保您的BroadcastReceiver
类不是static
.Activity