Android SDKは、remote serviceがアプリケーションで別のプロセスで実行されていると言います。私は、アプリケーションが停止した場合、または終了した場合、リモートサービスがまだ実行中のままであることを意味すると考えました。しかし、それはしません。Android - アプリケーションが終了するとリモートサービスが終了する
import java.util.Timer;
import java.util.TimerTask;
import android.app.Service;
import android.os.IBinder;
import android.util.Log;
public class WatchDogService extends Service {
private Timer timer = new Timer();
@Override
public void onCreate() {
Log.i(WatchDogService.class.getName(), "WatchDog start");
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
Log.i(WatchDogService.class.getName(), "WatchDog boo boo!!! ^^");
}
}, 0, 5000);
}
@Override
public void onDestroy() {
Log.i(WatchDogService.class.getName(), "WatchDog stop");
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(WatchDogService.class.getName(), "WatchDog has just been called...");
// We want this service to continue running until it is explicitly
// stopped, so return sticky.
return START_STICKY;
}
}
のAndroidManifest.xml:
startService(new Intent("WatchDogService"));
サービスは、[OK]を開始します。私のようにそれを呼び出す別のアクティビティで
<service
android:name="WatchDogService"
android:process=":remote" >
<intent-filter>
<action android:name="WatchDogService" />
</intent-filter>
</service>
は、例えば、私はこのリモートサービスを提供しています。しかし、私がシステムのアプリマネージャーに行って、その後アプリケーションを停止すると、サービスも終了します。
アプリが終了してもサービスを実行しておきたいです。どうやってやるの?
解決策を理解できません。もう少し詳しく教えていただけますか?私も同じ問題で苦労しているし、それを理解することはできません。同じコードを使用してアプリを実行し、デバイス上で実行中のプロセスをチェックすると、2つのプロセスと1つのサービス(1つのプロセスと1つのサービスの代わりに)が表示されるはずです。 – pree