这是我的场景:
- 我显示一个无法清除的通知 (
FLAG_NO_CLEAR
), - 我设置了一个挂起的意图来启动一个
Activity
, - 在启动
Activity
时,用户按下了一些东西,而我又启动了另一个Activity
, - 再次单击通知不会启动/显示
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
有想法该怎么解决这个吗?我想到的唯一一个是使用广播意图而不是活动意图(并从接收器启动活动),但我什至不确定这是否可行。