假设以下代码:
public class MyApplication extends Application {
@Override
public void onCreate()
{
super.onCreate();
getApplicationContext().startService(new Intent(getApplicationContext(), MyService.class););
}
}
public class MyService extends IntentService {
private Handler mLoadContactsHandler;
public MyService() {
super(MyService.class.getName());
myHandler = new Handler();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
return START_NOT_STICKY;
}
@Override
protected void onHandleIntent(Intent intent)
{
int delay = intent.getIntExtra("delay", 1000 * 60 * 5);
myHandler.postDelayed(updateTask, delay);
}
private Runnable updateTask = new Runnable() {
public void run() {
Thread thread = new Thread()
{
public void run()
{
... some task ...
}
};
thread.start();
myHandler.postDelayed(this, 1000*60*15);
}
};
}
即使我退出应用程序,该服务会继续运行吗?(退出就像使用后退按钮关闭应用程序一样)
我的意思是,服务从未真正完成。如果应用程序已关闭,如何使服务退出。当然,我希望它完成它正在做的事情。
编辑。只要应用程序正在运行,我希望服务在其间隔内继续运行。