ん。これは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_STICKY
、START_REDELIVER_INTENT
を - 同じ結果を示して、私は完全に再起動するか、それが殺されないことができますどのような方法がありますか?