当按下“返回”或“主页”按钮时,代码仍在运行,Android
当我的应用程序活动在后台使用Home按钮或Back按钮时,某些侦听器代码(如requestLocationUpdates或threads)仍在运行,为什么?您可以在类中实现这两个回调方法(活动在其中扩展),并编写代码来处理活动隐藏时和返回按钮时的执行(或其他按钮)被按下当按下“返回”或“主页”按钮时,代码仍在运行,Android,android,multithreading,listener,onpause,Android,Multithreading,Listener,Onpause,当我的应用程序活动在后台使用Home按钮或Back按钮时,某些侦听器代码(如requestLocationUpdates或threads)仍在运行,为什么?您可以在类中实现这两个回调方法(活动在其中扩展),并编写代码来处理活动隐藏时和返回按钮时的执行(或其他按钮)被按下 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyE
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
/*code to handle when back button is pressed*/
}
else if (keyCode == KeyEvent.KEYCODE_HOME) {
/*code to handle when HOME sbutton is pressed*/
}
return false;
}
@Override
protected void onPause() {
/*code to handle when activity goes in background and becomes inactive*/
super.onPause();
}
调用onpause方法时,向pause location添加代码。以下是我使用的内容。
locationManager
是locationManager
@Override
protected void onPause() {
if(locationManager != null){
locationManager.removeUpdates(GPSTracker.this);
}
super.onPause();
}
关于线程的问题: 总是有一个循环在5他运行的方法,你控制通过一个布尔像是运行。 还有一个由!控制的内环,用于exmpl 如果您想“暂停”线程,只需将isPaused设置为true,如果您想终止它,则将isRunning设置为false(当然是isPaused设置为true)
在运行循环中,让线程睡眠100毫秒,这样他每100毫秒醒来一次,检查它是否仍处于暂停状态您应该在
onPause()中注销侦听器
override for Activities。有关您所询问的一般主题的更多信息,请阅读以下内容:正如Daniel所说,您必须了解android活动生命周期。有关此方面的更多信息,请参见: