26

デバイス A で whatsapp (今後は appX と呼ぶことができます) を実行しています。アプリケーションの管理に移動します -> 強制的に閉じると、appX が閉じられ、appX が実行中のサービスとして表示されなくなります。

5 分後、別のデバイスの appX (デバイス B) からデバイス A の appX (強制終了したデバイス) にメッセージを送信します。私がテストした2つのシナリオは次のとおりです。

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

  • Android 2.3.6 を搭載したデバイス A : appX が強制終了されてからどれだけ時間が経っても、デバイス B からメッセージを送信するとすぐに、何らかの魔法の理由で -> デバイス A がメッセージを受信すると、appX のサービスが再起動されます。注 : appX が閉じられていて、通知を受信して​​いない間は常に、アプリケーションの管理で appX の実行中のサービスを確認できませんでした。これは、この魔法のサービスがメッセージ/通知を受信するとすぐに再起動されることを意味します。

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

私はこれと同じ動作を達成しようとしているので、助けていただければ幸いです。

4

4 に答える 4

49

この回答にプラス/マイナス投票する前に、回答が 3 年近く前のもの (2015 年 5 月と言えば) であり、状況が変わっている可能性があることを考慮してください。

ここで起こっていることは魔法ではないと思います!これは単なる Android C2DM (参照: https://developers.google.com/android/c2dm/ ) ですが、アプリにはReceiver着信プッシュ通知が登録されており、このメッセージによって起動されます。Android C2DM は Android 2.2 で利用可能でした/利用可能でした。これが、Android 2.1 を起動して実行しているデバイスで同じ動作を確認できない理由です。

ところで: ご覧のとおり、C2DM は 2012 年 6 月 26 日以降非推奨です。そのため、C2DM の代わりに GCM を使用する必要があります ( http://developer.android.com/guide/google/gcm/gs.htmlを参照) 。

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

于 2012-06-28T05:55:19.983 に答える
13

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

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

公式ドキュメントはこちらにあります

于 2015-01-09T09:54:31.697 に答える
1

appX は Android GCM プラットフォーム経由でプッシュ通知を使用しますhttps://developer.android.com/google/gcm/index.html GCM では、アプリはブロードキャスト レシーバーに登録し、ブロードキャスト レシーバーはプッシュ通知の取得時にサービスを開始します. Android GCM は、Android 2.2 以降で利用可能な Google Play サービスに依存しているため、2.1 デバイスではメッセージが表示されませんでした。

于 2015-01-14T05:41:16.060 に答える