1

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を受け。 (注:私はインターネット接続を持っています)。アプリがバックグラウンドで実行されている間はネットワークに接続できないようです。

PSRetrofit 2私のネットワークリクエストの作成時に使用します。また、Android Nをテストデバイスとして使用しています。

+0

Android Oでテストしていますか? – Benjamin

+0

いいえ、Android N @Benjaminを使用しています – YellowJ

+0

バックグラウンドサービスのライブサイクルを記録して、リクエストが完了する前にいくつかの魔法のバッテリーを保存する理由がないか確認してください。 – Lukasz

答えて

0

自分の質問に答える:

ソースを - >https://stackoverflow.com/a/41281059/5285687

それは、デバイスが省電力モードのときに、システムがネットワークにアクセスしてから、バックグラウンドのアプリを妨げることが判明しました。

ここでは、使用できる解決策を示します。 - >https://stackoverflow.com/a/39167736/5285687

ですが、これにはアンドロイド通知を提出する必要があります。

関連する問題