2012-12-04 15 views
5

リモートビューを使用するアンドロイド通知バーがあります。私はそこにオーディオを再生して一時停止させるための2つのボタンと、アプリケーションに戻るためのアイコンを持っています。アイコン(または2つのボタンのどこか)をクリックしてアプリケーションに戻ることができるようにしたい。ここに私のコードですAndroidリモートビュー通知

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を使用しようとしましたが、問題を修正しませんでした。どんな助けでも大歓迎です。

答えて

3

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

通知ウィンドウを自動的に(リフレクションを使用せずに)折りたたむには、通知ビューに「グローバル」保留インテントを設定する必要があります。 R.id.btnAppIconをその "catch all"インテントビューに含める必要があります。

「グローバル/デフォルト」の通知保留中の意図の例:(私が観察してきたように)PendingIntent.getActivityで使用

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

「一般」通知意図は、任意のデバイス上で通知ウィンドウを閉じます。

+0

問題を修正しました。あなたの助けに感謝します。 – user706593