web-dev-qa-db-ja.com

アプリを強制停止してもwhatsappサービスはどのように再起動しますか?

私はデバイスAでwhatsappを実行しています(これからappXと呼ぶことができます)。

5分後、別のデバイスのappX(デバイスB)からデバイスAのappX(削除したデバイス)にメッセージを送信します。ここに私がテストした2つのシナリオがあります:

  • デバイスA Android 2.1:メッセージを受信しないため、appXサービスは再起動されなかったと言えます。ユーザーがアプリを手動で再起動した場合にのみメッセージを受信します。

  • Android 2.3.6:デバイスBからメッセージを送信するとすぐに、appXが強制終了されてからどれだけ長くても、デバイスA->注:appXが閉じられ、通知を受信せずに常に、アプリケーションの管理でappXの実行中のサービスを確認できなかったため、このマジックサービスはすぐに再起動されますメッセージ/通知を受信するとき

奇妙に聞こえますが、これは不可能だと多くの人が言うでしょうが、これもこれら2つのデバイスでテストされています。

私はこれと同じ振る舞いを達成しようとしているので、どんな助けでも感謝します。

22
cesarmax

この回答をアップ/ダウン投票する前に、回答が現在3年近く(2015年5月と言えます)であり、状況が変わっている可能性があることを考慮してください!

ここで何が起こるかは魔法ではないと思います! Android C2DM(参照: https://developers.google.com/Android/c2dm/ )ですが、アプリには着信プッシュ通知用の登録済みReceiverがありますこのメッセージで目覚めます。Android C2DMはAndroid 2.2で利用可能です。これが、デバイスで同じ動作を見ることができない理由です。 with Android 2.1 up and running。

ちなみに、ご覧のとおり、C2DMは2012年6月26日以降廃止されます。したがって、C2DMの代わりにGCMを使用する必要があります(参照: http://developer.Android.com/guide/google/gcm/ gs.html

有用なコメント:GCMには利用可能なインターネット接続が必要です。この制限に合格することにより、SMSReceiverなどの他のブロードキャストレシーバーを使用できます。

47
herom

Android 3.1(API 12)から開始、アプリケーションが強制停止された場合、ユーザーが再起動するまで再起動しません手動でアプリを再度実行します

これは、アプリにServiceまたはアクティブなBroadcastReceiverが含まれている場合でも発生します。

公式ドキュメント こちら をご覧ください。

12
bonnyz

whatsAppサービスについてのアイデアを持っていません。

ただし、アプリケーションを強制停止した後、アプリのサービスを再起動することは可能です。

chatAppで START_STICKY サービスを使用します。私は同じことをしなければならないので、START_STICKYサービスを使用するので、アプリを強制終了または設定から​​強制停止した場合、数秒後にサービスが再起動し、xmppサーバーにログインして着信メッセージを取得できます。

2
Lokesh

ここでは魔法のようなものではありませんappXはAndroid GCMプラットフォーム https://developer.Android.com/google/gcm/index.html 経由でプッシュ通知を使用しますブロードキャストレシーバーの場合、ブロードキャストレシーバーはプッシュ通知を取得するとサービスを開始します。Android GCMは、Android 2.2およびそれを超えると、2.1デバイスでメッセージが表示されませんでした

1
Pramod Yadav