不幸的是,我无法在其他 StackOverflow 帖子中找到解决此问题的方法,因此我提前为重新发布此问题道歉。本质上,我有一个创建通知的 AppWidget。我希望用户单击通知以启动活动。AppWidget 和 Activity 在同一个 APK 中。
以下代码全部在 AppWidget 中。单击通知会广播一个由 AppWidget 接收的自定义 Intent。
问题是 Activity 似乎没有启动,即使 logcat 表明自定义 Intent 确实已被广播。唯一的线索是帖子标题中重申的 logcat 消息。
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Constants.BROWSER_INTENT)) {
launchActivity(context, R.layout.appwidget, R.id.launch_button, Activity.class);
}
super.onReceive(context, intent);
}
private void displayNotification(Context context, String ticker, String title, String msg) {
Intent intent = new Intent(context, ThisWidget.class);
intent.setAction(Constants.BROWSER_INTENT);
PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0);
NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.icon, ticker, System.currentTimeMillis());
notification.setLatestEventInfo(context, title, msg, pending);
notificationManager.notify(1, notification);
}
一些注意事项:
- 按下按钮执行 launchActivity() 工作(它启动活动)
- 根据 Android 生命周期文档的建议,launchActivity 使用 Intent.FLAG_ACTIVITY_NEW_TASK
从通知媒体启动活动时,有人解决了这个问题吗?