【问题标题】:A single BroadcastReceiver in an Android APK file.Android APK 文件中的单个 BroadcastReceiver。
【发布时间】:2014-06-12 10:23:44
【问题描述】:

假设我们有一个仅包含一个 BroadcastReceiver 的 Android APK 文件。 这种形式的 APK 文件安装在 Android 设备上是否会成功安装,BR 是否可以接收到预期的意图?我认为它会,但我的实验表明它不会。我不知道为什么,但安装此类 APK 文件(带有单个 BR)似乎总是失败。

解决此问题的方法是在包中添加一个虚拟 Activity。然后安装成功,BroadcastReceiver 可以接收到所有预期的意图!

请分享您对此事的看法。

我总是感谢大家的帮助!

【问题讨论】:

  • 发布您的代码和您看到的错误。小部件是接收器,可以在您的应用程序中完全没有任何活动的情况下正常工作,但我不知道您是否这样做。
  • 添加一个虚拟活动,解决了这个问题。您是否在清单中将这个虚拟活动设置为启动器?
  • 我遇到的问题是 BroadcastReceiver 没有收到任何意图。这里没有编译错误。虚拟活动的意图过滤器是“android.intent.action.MAIN”作为一个动作,“android.intent.category.LAUNCHER”作为一个类别。虚拟活动的清单文件中除了它们之外没有其他任何东西。
  • 哦,我应该这么说。安装没有失败,但 BroadcastReceiver 没有收到任何意图。对不起,我草率的英语让您感到困惑。

标签: android android-intent broadcast receiver


【解决方案1】:

这种形式的 APK 文件是否会在 Android 设备上安装成功并且 BR 是否可以接收到预期的意图?

没有。

我不知道为什么,但安装此类 APK 文件(带有单个 BR)似乎总是失败。

不,但BroadcastReceiver 不会接收广播,直到某些东西通过显式 Intent(即标识类的Intent)直接调用您的组件之一。通常,这将在用户启动您的LAUNCHER 活动时发生。从大约三年前的 Android 3.1 开始就是这种情况(请参阅the Android 3.1 release notes 中的“在停止的应用程序上启动控件”)。

【讨论】:

  • 太棒了!你的回答是我期望看到的。 “在停止的应用程序上启动控件”的链接看起来非常有价值。非常感谢您和其他帮助者!!!
【解决方案2】:

您需要至少一个Activity 用于安卓应用程序中的登陆页面。当应用手动启动时,您期望会发生什么?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 2011-06-18
    • 2011-06-01
    相关资源
    最近更新 更多