2016-06-28 8 views
1

を実行していない場合であっても、私は2つのサービスとアプリ持つonMessageReceived()とonTokenRefreshを()ハンドル:アプリが

MessagingService extends FirebaseMessagingService 

InstanceIDService extends FirebaseInstanceIdService 

をそこはAndroidManifest.xmlファイルで宣言されています。 問題は、私のアプリのプロセスが近い自体に強制されたときに、サービスも殺されていることです。

私は殺されるべきではなく、それらをしたいと思います。私はServiceクラスのSTART_STICKYフラグについて聞いてきましたが、このフラグを戻すように私は

+4

これらのサービスが開始されます。これらのサービスを自分で開始/停止する必要はありません。 –

+0

@ArthurThompson私のonMessageReceived()メソッドでは、ログを入れました。アプリを終了してダウンストリーム通知を送信すると、ログは実行されません。あなたがデータメッセージを送信する場合 – Drarig29

+1

onMessageReceivedはいつもと呼ばれていますが、通知メッセージを送信する場合、それは時々呼ばれていません。どのタイプのダウンストリームメッセージを送信していますか? –

答えて

0

コメントに答えるために、私はいずれかを見つけることができませんでした...これらのサービスでonStartCommand()メソッドをオーバーライドすることはできません私の問題を「解決」それは問題ではありませんので。ユーザーが自分のアプリを終了したい場合、彼は権利を持ちます。

onMessageReceived()方法は私のアプリで私のMessagingServiceに属しているので、アプリはユーザーによって強制閉鎖している場合、アプリやサービスでもないがを再起動します。

Weishi Zengがコメントで述べたように、「設定を強制的に閉じる」はサービスを含めてすべてのアプリケーションについて停止しているので、通知はGoogle Playサービスで受信されますが、私のアプリは表示されません。その後、onMessageReceived()メソッドは実行されません。 しかし、サービスは "スワイプクローズ"で閉じられていません。

最終的には、これはユーザーの選択に反するため、回避策を見つけることは望ましくありませんでした。

hereを参照してください。 Googleは常にデバイス上で実行されているサービスを、再生することにより、