Notification.Actionsによる通知に応答するアプリがあります。だから、基本的に、私はこのアプリが実行されていないときにPendingIntent内のサービスで通知アクションが動作しない
Intent actionIntent = actionIntent = new Intent(this, NotificationActionIntentService.class);
actionPendIntent = PendingIntent.getService(
this,
requestCodeBtn,
actionIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);
と保留意向を持っている私は私のNotificationActionIntentService内でやっていることは、私のBEへのHttpRequestを作るために必要な更新を示す情報です。
注::アプリケーションがフォアグラウンドにある場合、すべて正常に動作します。ここで
は、ものです:GCMを受信すると
、私はすぐにNotification.Actionを押すと、すべてがまだ正常に動作します。
しかし、Notification.Actionを押す前にGCMを受信してから30秒待っても、ネットワークリクエストは完了しません。ログには、ネットワーク要求が行われたことだけが示されます。しかし、私は決して応答を得ることはありません。私は私のBEサーバーのログを見る。私はネットワーク要求を受け取りません。
しかし、アプリを手動で起動すると、ネットワークが再開されます。アプリが既にフォアグラウンドになっているときに、ネットワークリクエストが一時停止されてから再開されたようです。 UPDATE
(私はそれだけで、バックグラウンドで実行したいので、私はこの振る舞いをしたくない):(アプリを開かずに)2分後、Notification.Actionを押した後、私は私のログにjava.net.ConnectException: Failed to connect
を受け。 (注:私はインターネット接続を持っています)。アプリがバックグラウンドで実行されている間はネットワークに接続できないようです。
PS:Retrofit 2私のネットワークリクエストの作成時に使用します。また、Android Nをテストデバイスとして使用しています。
Android Oでテストしていますか? – Benjamin
いいえ、Android N @Benjaminを使用しています – YellowJ
バックグラウンドサービスのライブサイクルを記録して、リクエストが完了する前にいくつかの魔法のバッテリーを保存する理由がないか確認してください。 – Lukasz