6

私の通知にはいくつかのボタンが含まれています:

  • 1つのボタンでメインアクティビティを起動します(そうする場合はステータスバーを閉じる必要があります)
  • それらのうちの4つは、音楽を制御するための保留中のインテントを送信します(ステータスバーを開いたままにする必要があります)

問題は、最初のボタンがステータスバーを閉じないことです...

最初のボタンによって送信されたPendingIntent:

Intent activityIntent = new Intent(smp, MusicShaker.class)
            .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
                    | Intent.FLAG_ACTIVITY_SINGLE_TOP);
activityIntent.setAction(MyIntentAction.DO_LAUNCH_ACTIVITY_FROM_NOTIF);
remoteViews.setOnClickPendingIntent(R.id.notif_album_IV, PendingIntent
            .getActivity(ctxt, 0, activityIntent,
                    PendingIntent.FLAG_CANCEL_CURRENT));

アクティビティは正しく起動されますが、ステータスバーはそこにとどまり、自動的に閉じません。
私は旗を見逃している/誤解していますか?MyActivity.onResume()からプログラムでステータスバーを閉じることはできますか?
編集:ちなみに、通知はサービスによってプッシュされます

ありがとう=)

4

4 に答える 4

4

ビルダーの作成中にsetAutoCancel(true)を指定する必要があります。そしてそれがすべてです:)

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle("title goes here")
            .setContentText("content text goes here").setAutoCancel(true);
于 2013-11-02T15:07:56.157 に答える
2

ええ、アプリの起動時にプログラムで通知をキャンセルする必要があります。

NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancel(NOTIFICATION_ID);
于 2012-08-21T17:37:23.577 に答える
2

わかりました、解決策を見つけました...標準の通知によって生成された同じ動作を再現できなかったので、:
-imageButton "notif_album_IV"をクリック不可にし、ImageViewに変更しました
-このコードを使用しました:

builder.setContentIntent(PendingIntent.getActivity(smp, 0,
  activityIntent,PendingIntent.FLAG_CANCEL_CURRENT))

画像にsetOnClickPendingIntentを「手動で」設定する代わりに、インテントブロードキャストはコンテンツの背景によって処理されます

于 2012-08-22T17:24:12.883 に答える
1

これは私のために働いた:

sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
于 2018-11-08T09:28:34.953 に答える