【发布时间】:2017-08-21 17:52:55
【问题描述】:
所以我有我想在我的应用程序关闭时调用的代码。不仅仅是当它被发送到后台或表面被破坏时。我该怎么做呢?有没有可以在 SurfaceView 或 Activity 类中覆盖的方法?
新编辑 - 当前BackgroundService 类:
public class BackgroundService extends Service {
private String savedString;
public void onCreate() {
System.out.println("Service created");
super.onCreate();
}
public int onStartCommand(Intent intent, int flags, int startId) {
System.out.println("start command: ");
savedString = intent.getStringExtra("myString);
return super.onStartCommand(intent, flags, startId);
}
public IBinder onBind(Intent intent) {
return null;
}
public void onTaskRemoved(Intent rootIntent) {
System.out.println("the saved string was: " + savedString);
super.onTaskRemoved(rootIntent);
}
public void onDestroy() {
System.out.println("destroyed service");
super.onDestroy();
}
}
然后我在其他班级有这个:
Intent serviceIntent = new Intent(activity.getApplicationContext(), BackgroundService.class);
serviceIntent.putExtra("myString", "this is my saved string");
activity.startService(serviceIntent);
【问题讨论】:
-
您需要创建一个服务来处理这个问题。它与您的视图/活动无关。当应用程序从最近的应用程序面板滑开时,它可以处理
-
“当我的应用程序关闭时”究竟是什么意思?您的意思是“当我的进程终止时”?你还有别的意思吗?
-
@CommonsWare 当进程终止时是。例如,当您打开正在运行的应用程序屏幕,然后滑动应用程序以使其停止运行。
标签: android android-activity android-service