0

これが私のシナリオです:

  1. クリアできない通知を表示します(FLAG_NO_CLEAR)、
  2. を起動する保留中のインテントを設定しましたActivity
  3. 起動Activity時に、ユーザーが何かを押すと、私は別のを起動しますActivity
  4. 通知をもう一度クリックしても、保留中のインテントが開始/表示されないためActivity、非常に煩わしいです。イニシャルActivityを再起動するか、前面に表示してほしい。しかし、私はこれを達成することができないようです。

通知に関連するコード:

Intent i = new Intent(this, RemindersActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // the docs say this is required
PendingIntent pi = PendingIntent.getActivity(this, 0, i, 0);
n.setLatestEventInfo(this, getString(R.string.app_name), text, pi);

その後、それは正常ですstartActivity()(ステップ3で)。これが私がlogcatで取得するものです:

I/ActivityManager(  147): Starting activity: Intent { flg=0x10000000 cmp=my.package/my.package.RemindersActivity bnds=[0,387][480,483] }
W/InputManagerService(  147): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@45a33fc8

これを修正する方法について何かアイデアはありますか?私の頭に浮かぶのは、アクティビティインテントの代わりにブロードキャストインテントを使用する(そしてレシーバーからアクティビティを起動する)ことだけですが、それが機能するかどうかさえわかりません。

4

1 に答える 1

1

しかし、私はこれを達成することができないようです。

FLAG_ACTIVITY_REORDER_TO_FRONTに、またはとの組み合わせをFLAG_ACTIVITY_CLEAR_TOP追加してみてFLAG_ACTIVITY_SINGLE_TOPくださいIntent

于 2011-07-04T17:08:06.587 に答える