2012-03-20 14 views
2

ん。これはonStartCommand(ある)アンドロイド(サービス&PhoneStateListener) - サービスが再起動するが、アプリがタスクマネージャによって殺されたときに動作していない、メモリのキラーまたは不足

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    // Notification creation code 

    telMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
    telMgr.listen(new PSL(), PhoneStateListener.LISTEN_CALL_STATE); 

    return super.onStartCommand(intent, flags, startId); 
} 

とPhoneStateListenerクラス(サービスクラス下)

public class PSL extends PhoneStateListener { 
    public void onCallStateChanged(int state, String incomingNum) { 
     switch(state) { 
     case TelephonyManager.CALL_STATE_IDLE: 
     case TelephonyManager.CALL_STATE_OFFHOOK: 
      //Work1 
      break; 
     case TelephonyManager.CALL_STATE_RINGING: 
      //Work2 
      break; 
     } 
    } 
} 

それらの両方が同じ.javaファイル内にある

私は1つのサービスクラスでこれらのコードを持っています。

メインアクティビティからstartService()を呼び出すとうまくいきます。 私のアプリがタスクマネージャ、Killer、またはデバイス上のメモリ不足によって自動的に殺されると、サービスは再起動しますが動作しません。 私はSetting - Application - Runningに行くと、プロセス1とサービス1を示しています。殺された前後に殺されました。しかし、殺された後、メモリシェアは1/10になります。私はstartForeground()を私の通知で簡単に殺さないようにしました - それはうまくいきませんでした。 (任意の通知を示していない)ともonStartCommand()の復帰を試みた:START_STICKYSTART_REDELIVER_INTENTを - 同じ結果を示して、私は完全に再起動するか、それが殺されないことができますどのような方法がありますか?

答えて

0

は私がstartForeground()でそれを解決し

私は通知

Notification.FLAG_FOREGROUND_SERVICEを使用していなかったので、それは動作しませんでした
関連する問題