在Android中,当应用程序被杀死时,所有的线程也会被终止。但是,你仍然可以通过一些方法来保持线程运行,即使应用程序被杀死。下面是一个示例代码,展示了如何实现这一点:
public class MyService extends Service {
private Thread myThread;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
myThread = new Thread(new Runnable() {
@Override
public void run() {
// 在这里执行你的线程逻辑
while (true) {
Log.d("MyThread", "Thread is running...");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
myThread.start();
// 如果应用程序被杀死,系统会尝试重新启动服务
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
// 当服务被销毁时,停止线程
if (myThread != null) {
myThread.interrupt();
}
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
在这个示例中,我们创建了一个继承自Service的类MyService。在onStartCommand方法中,我们创建了一个新的线程,并在其中执行我们的线程逻辑。此处的示例代码只是一个简单的示例,你可以在其中执行任何你需要的操作。
当应用程序被杀死时,系统会尝试重新启动服务(由返回值START_STICKY指定)。这将确保即使应用程序被杀死,服务仍然在后台运行。
在onDestroy方法中,我们停止线程的执行,以便在服务销毁时终止线程。
要使用这个服务,你需要在AndroidManifest.xml文件中声明它:
这样,你就可以在你的应用程序中创建一个可在后台保持运行的线程。请注意,这种方法仅在启动服务后才有效,如果你的应用程序从未启动过服务,则无法保持线程运行。