多分問題は明らかですが、私のアプリが何をしているかに基づいて確かめたいと思います。何もしないフォアグラウンドサービス。それはOSによって殺される良い候補者ですか?
私はGPSトラッカーを作成しています。私は静的クラス内の位置情報サービスを使用して自分のポジションを取得します。すべてうまく動作します。しかし、私はそれが数時間実行されているときに私のアプリが殺されることが時々気付いています。私はそれをフォアグラウンドサービスに変換することを考えて解決するために。
私のコードを書き直して、すべてのロジックをサービスの中に入れ替えるのではなく、何もしないフォアグラウンドサービスを作成することを考えました。ユーザーがトラッキングを開始することを決定したら、このサービスを開始します。静的クラスの中で位置情報サービスを使用することを忘れないでください。
このサービスは安全であるか、OSはこのサービスがまったく何もしていないことを知り、死ぬチャンスが増えるでしょうか?ここで
は私のサービスです。
public class SimpleService extends Service
{
private static final int ONGOING_NOTIFICATION = 1;
@Override
public void onCreate()
{
super.onCreate();
Notification notification = new Notification(R.drawable.icon, "Tracking started", System.currentTimeMillis());
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(this, "notification title", "notification message", pendingIntent);
startForeground(ONGOING_NOTIFICATION, notification);
}
@Override
public void onDestroy()
{
super.onDestroy();
stopForeground(true);
}
}
おかげ