次のコードを想定します。
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);
}
};
}
アプリを終了しても、このサービスは実行され続けますか?(戻るボタンを使用してアプリを閉じるときと同じように終了します)
つまり、サービスが実際に終了することはありません。アプリがシャットダウンされた場合、どうすればサービスを終了できますか。もちろん、やっていることを終わらせたいです。
編集。アプリが実行されている限り、サービスをその間隔で実行し続けたい。