当我的应用关闭时,我使用onDestroy()
做某事,但当我从菜单关闭我的应用时(通过点击左边的软键,它不起作用)三星Galaxy上的主页按钮)。所以我推断,当我杀死我的应用时,它并没有调用onDestroy()
方法。当我以这种方式关闭我的应用程序时,我该怎么办?
答案 0 :(得分:1)
首先创建此服务类:
public class ExitService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onTaskRemoved(Intent rootIntent) {
System.out.println("onTaskRemoved called");
super.onTaskRemoved(rootIntent);
//do something you want before app closes.
//stop service
this.stopSelf();
}
}
然后,在清单标签中声明您的服务:
<service
android:enabled="true"
android:name=".ExitService"
android:exported="false"
android:stopWithTask="false" />
现在,只需在应用关闭之前在任何地方启动服务即可。
Intent intent = new Intent(this, ExitService.class);
startService(intent);
答案 1 :(得分:0)
听起来您可能会考虑将代码移动到生命周期的onPause()区域。这通常是保存存储数据并准备关闭的首选位置,而onDestory()是关闭打开句柄的更好位置,在强制终止期间系统可能会关闭打开句柄。
答案 2 :(得分:0)
onDestroy()
不一定总是被调用。因此,您需要在onStop()
或onPause()
回拨中执行所有任务。