2011-11-15 11 views
2

多分問題は明らかですが、私のアプリが何をしているかに基づいて確かめたいと思います。何もしないフォアグラウンドサービス。それは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); 
    } 
} 

おかげ

答えて

1

私はそれが変更された場合は、ファイルをダウンロードするために定期的に走った私が作成したサービスのために同じようなことをしましたが、それはOSによって殺されていたました数時間後にstartForegroundを使用しているので、問題はなくなりました。

最小限の作業と空のサービスとの違いはありません。

関連する問題