按下“返回”或“主页”按钮时,代码仍然是 运行,Android
Codes are still running when Back or Home button pressed, Android
当我的应用程序 activity 使用主页按钮或后退按钮进入后台时,某些侦听器代码(如 requestLocationUpdates 或线程)仍然 运行,为什么?
你可以在class(扩展了Activity)中实现这两个回调方法,并编写代码来处理activity隐藏和后退按钮(或其他按钮)被按下
@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方法时添加代码到暂停位置。这是我正在使用的。 locationManager
是 LocationManager
的对象
@Override
protected void onPause() {
if(locationManager != null){
locationManager.removeUpdates(GPSTracker.this);
}
super.onPause();
}
关于线程的问题:
在 5he 运行 方法中始终有一个循环,您可以通过像 isRunning 这样的布尔值来控制它,例如
和一个由 !isPaused for exmpl
控制的内部循环
如果你想 "pause" 线程,那么只需将 isPaused 设置为 true,如果你想杀死它,请将 isRunning 设置为 false(或将 isPaused 设置为 true)
在运行ning循环中让线程休眠100ms,让他每100+ms醒来检查是否还在暂停
当我的应用程序 activity 使用主页按钮或后退按钮进入后台时,某些侦听器代码(如 requestLocationUpdates 或线程)仍然 运行,为什么?
你可以在class(扩展了Activity)中实现这两个回调方法,并编写代码来处理activity隐藏和后退按钮(或其他按钮)被按下
@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方法时添加代码到暂停位置。这是我正在使用的。 locationManager
是 LocationManager
@Override
protected void onPause() {
if(locationManager != null){
locationManager.removeUpdates(GPSTracker.this);
}
super.onPause();
}
关于线程的问题:
在 5he 运行 方法中始终有一个循环,您可以通过像 isRunning 这样的布尔值来控制它,例如 和一个由 !isPaused for exmpl
控制的内部循环如果你想 "pause" 线程,那么只需将 isPaused 设置为 true,如果你想杀死它,请将 isRunning 设置为 false(或将 isPaused 设置为 true)
在运行ning循环中让线程休眠100ms,让他每100+ms醒来检查是否还在暂停