从通知启动意图时,“从非活动上下文服务调用的startactivity”警告

时间:2013-11-18 18:56:06

标签: android android-intent service notifications android-pendingintent

我有servicenotification开始startForeground(),我希望通知在点击时启动活动。
我要发布的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()来获取活动,但也收到相同的警告。
我该如何做到这一点?

1 个答案:

答案 0 :(得分:3)

不要将Intent.FLAG_ACTIVITY_NEW_TASK用于PendingIntent.getActivity。更好地使用FLAG_ONE_SHOT

尝试使用Context的{​​{1}}代替Activity