因此,当我的应用程序关闭时,我需要调用我想要的代码。不仅在它被发送到背景或表面被破坏时。我该怎么做呢?我可以在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);
答案 0 :(得分:1)
您需要添加后台服务
public class BackgroundServices extends Service
{
@Override
public void onCreate() {
Toast.makeText(this, "start", Toast.LENGTH_SHORT).show();
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
然后在你的活动中。您想要触发此服务的地方
使用
startService(new Intent(getBaseContext(), BackgroundServices.class));
在你的情况下,它将调用该活动的onDestory函数
答案 1 :(得分:0)
当流程终止时是的
一般情况下这是不可能的。当流程终止时,您的应用程序中没有任何内容被调用。
例如,当您打开正在运行的应用程序屏幕时,请轻扫该应用程序以阻止其运行
这是一项任务删除。 可能导致您的流程终止,并且您可以通过多种方式终止与任务删除无关的流程。
要检测任务删除,请覆盖onTaskRemoved()
。
Service