2016-05-10 8 views
0

私は以下のコードを作成することでこの問題を解決しようとしています。しかし、私は結果を得ていない。誰でもこの質問に答えることができますか?アプリが殺されたり破壊された場合にインテントサービスを開始するにはどうすればよいですか?

- Geofenceトリガでアプリを強制終了してもトランジション通知が表示されない。 - 終了出口通知が正しく機能するアプリケーションが[バックグラウンド]にあるときに終了した後、アプリケーション通知が正常に機能しない。

public void onDestroy() 
{ 
    super.onDestroy(); 
    if(GpsService.mTimer != null) 
    { 
     startService(new Intent(context, GpsService.class)); 
    } 
    Log.e(TAG, "onDestroy"); 
} 
+0

コンテキストが破棄されているため、どのように動作するかわかりません。代わりに 'getApplicationContext()'を使用しようとする –

+0

これを試してくださいhttp://stackoverflow.com/questions/35973536/android-not-able-to-add-geofence-from-service/35979567#35979567、それは私のためにうまくいく –

+0

"アプリを殺している間に"これはどういう意味ですか? –

答えて

0
public void onDestroy() 
{ 
    super.onDestroy(); 
    if(GpsService.mTimer != null) 
    { 
     startService(new Intent(context, GpsService.class)); 
    } 
    Log.e(TAG, "onDestroy"); 
} 

これは最初のあなたの活動を破壊し、その後、あなたの状態がチェックされます。これは。あなたがSTART_STICKYを返す、あなたのサービスのonStartCommand()からこの

public void onDestroy() 
     { 
      if(GpsService.mTimer != null) 
      { 
       startService(new Intent(context, GpsService.class)); 
      } 
      Log.e(TAG, "onDestroy"); 
       super.onDestroy(); 

     } 

`

1

を試すことができます役に立たないものです。そのような場合(理想的には)、アプリが「強制終了」されてもサービスが再開されます。

(START_STICKYが機能する場合は、onDestroyからサービスを開始する必要はありません.Androidが処理します)。

しかし、一部のメーカーの携帯電話では、最近のタスクリストからアプリをクリアするとアプリが強制終了されます。その場合、サービスは再起動せず、あまりできません。

関連する問題