我有一个service
,它用startForeground()
启动notification
,我希望通知在单击时启动活动
我要启动的acitivty
定义为android:launchMode="singleTask"
,通常在服务启动之前运行
这是我的pending intent
创建代码:
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
当我点击通知时,我会收到以下警告:
startActivity called from non-Activity context;
forcing Intent.FLAG_ACTIVITY_NEW_TASK for: Intent........
我也尝试过用this
而不是getApplicationContext()
获取活动,但得到了相同的警告
我该如何改正?
不要将Intent.FLAG_ACTIVITY_NEW_TASK
用于PendingIntent.getActivity
。最好使用FLAG_ONE_SHOT
。
并尝试使用Activity
中的Context
来代替getApplicationContext()
。