5

リモート ビューを使用する Android 通知バーがあります。オーディオを再生および一時停止するための 2 つのボタンと、アプリケーションに戻るためのアイコンがあります。アイコン (または 2 つのボタン以外の場所) をクリックして、アプリケーションに戻ることができるようにしたいと考えています。これが私のコードです

Intent returnIntent = new Intent(_context, SplashScreenActivity.class);
returnIntent.setAction(Intent.ACTION_MAIN);
returnIntent.addCategory(Intent.CATEGORY_LAUNCHER);

PendingIntent remoteViewPendingIntent = PendingIntent.getActivity(_context,1, returnIntent,0);
remoteView.setOnClickPendingIntent(R.id.btnAppIcon, remoteViewPendingIntent);

これはすべて、Android 4.1 のエミュレーターで正常に動作します。通知のアイコンが押されると、アプリに正常に戻ります。ただし、Samsung S3 の Android 4.0.3 では、アクティビティはバックグラウンドで起動しますが、通知画面は非表示になりません。アイコンを選択したら通知画面をクリアしたい。通知で Notification.FLAG_AUTO_CANCEL を使用しようとしましたが、問題は解決しませんでした。どんな助けでも大歓迎です。

4

1 に答える 1

3

.setOnClickPendingIntent の動作は、経験したように、MFG とバージョンによって異なります。

必要なことを達成し、(リフレクションを使用せずに) 通知ウィンドウを自動的に折りたたむには、通知ビューに「グローバルな」保留中のインテントを設定する必要があります。R.id.btnAppIcon をその「すべてをキャッチする」インテント ビューにも含める必要があります。

「グローバル/デフォルト」通知の保留中のインテントの例:

contentIntent = PendingIntent.getActivity(YourClass.this, 0, notificationIntent, 0);
notification.contentIntent = contentIntent;

PendingIntent.getActivity で使用した場合の「一般的な」通知インテントは、どのデバイスでも通知ウィンドウを閉じます (私が観察したように)。

于 2012-12-04T02:23:49.377 に答える