android 小部件开始一个新的活动

Posted

技术标签:

【中文标题】android 小部件开始一个新的活动【英文标题】:android widget starts an new activity 【发布时间】:2014-06-11 21:34:18 【问题描述】:

我可以通过使用PendingIntentwidget 中单击view 来调出activity 如果activity 尚未启动,android 将创建一个新并调用onCreate(),我可以从widget 检索getExtra()

但是,如果activity 已经启动并且在stack 的顶部,则目标activity 只是被带到顶部显示而无需运行任何代码

我无法使用android:launchMode="SingleTop" 调用onNewIntent (Intent intent),但我需要应用其他部分的“多个”活动

我只想要widget 视图的click event 只是启动一个新的instance of activity 作为android:launchMode="standard" 的行为,以便我可以根据getExtra() 决定应该做什么

有什么想法吗?谢谢

【问题讨论】:

【参考方案1】:

当您点击小部件时发送广播,将帮助您解决启动活动的问题。您可以使用 PendingIntent 的 getBroadcast() 方法。

public static PendingIntent getBroadcast (Context context, int requestCode, Intent intent, int flags)

【讨论】:

这不是问题。您可以通过任何方式在广播接收器中启动活动。 谢谢。我想得太复杂了。我将使用服务,因为.....从 Android 3.1 开始,如果用户从未启动过相应的应用程序或用户通过 Android 菜单明确停止了应用程序,Android 系统默认会排除所有接收者接收意图(在管理 → 应用程序中)。 link

以上是关于android 小部件开始一个新的活动的主要内容,如果未能解决你的问题,请参考以下文章

Android:从小部件打开错误的活动

Android:使用 ListView 和 Service 从应用小部件开始活动

几个按钮的Android小部件onclick监听器

运行应用小部件 - 无法识别启动活动

Android:将对象从集合小部件传递到活动

Android Widget:在将小部件添加到屏幕之前显示配置活动