【发布时间】:2011-09-07 17:43:33
【问题描述】:
很遗憾,我无法在其他 StackOverflow 帖子中找到解决此问题的方法,因此对于重新发布此问题,我提前道歉。本质上,我有一个创建通知的 AppWidget。我希望用户单击通知以启动活动。 AppWidget 和 Activity 在同一个 APK 中。
以下代码全部在 AppWidget 中。点击 Notification 会广播一个 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() 工作(它启动 活动)
- launchActivity 使用 Intent.FLAG_ACTIVITY_NEW_TASK 作为 Android 生命周期文档推荐
有没有人在从 Notification press 启动 Activity 时解决了这个问题?
【问题讨论】:
标签: android android-widget android-intent android-notifications