应用程序应该处于运行状态才能触发意图吗?

2024-01-10

我有一个非常简单的 IntentReceiver 来在时间变化时接收事件。这是代码:

public class IntentRec extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i("IntentRec", intent.getAction());
    }
}

<application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
    <receiver android:name=".IntentRec">
        <intent-filter>
            <action android:name="android.intent.action.TIME_SET"/>
        </intent-filter>
    </receiver>
    <activity android:name="MyActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
</application>

但是,我在应用程序运行时收到意图。但如果我关闭(使用强制关闭)应用程序,则不会调用 onReceive。所以我的问题是,只有当侦听器应用程序运行时我才会收到意图吗?我认为意图是为了在应用程序未运行时运行目标侦听器类而设计的。

Thanks


解决方案很简单:停止单击“强制关闭”。

在 Android 3.1+ 上,强制关闭将阻止应用程序中的任何内容再次运行,直到用户手动运行您的 Activity 或其他内容(例如第三方应用程序)启动您的应用程序。


UPDATE

我怀疑您对“停止”一词的多种含义感到困惑。让我们来看看这个过程,避免使用“停止”这个词,看看它是否有帮助。

当您的应用程序首次安装在 Android 设备上时,会处于一种被某些人称为“snicklefritzed”的状态。当应用程序处于“snicklefritzed”状态时,没有清单注册BroadcastReceiver将工作。要将应用程序移出“snicklefritzed”状态,某些第三方应用程序(例如主屏幕启动器)必须明确请求在应用程序中运行某些内容(例如 Activity)。因此,正常的事件过程是用户下载您的应用程序,单击其启动器图标,然后您的应用程序将进入“正常”状态并远离“snickelfritzed”状态。在“正常”状态下,您的BroadcastReceiver会工作得很好。

让我们假设你的BroadcastReceiver是为了ACTION_BOOT_COMPLETED播送。 “snicklefritzed”状态与您的应用程序当前是否正在运行无关——它仅取决于您的应用程序是否已运行ever跑还是不跑。因此,如果用户安装了您的应用程序,但在对您的应用程序执行任何操作之前重新启动了手机,您的ACTION_BOOT_COMPLETED接收者将not在启动时获得控制。但是,如果用户在您的应用程序中运行某些内容,then重启手机,您的接收器将收到ACTION_BOOT_COMPLETED正常播出。

通常,应用程序会退出“snicklefritzed”状态,并且永远不会返回到该状态。一件事是will如果用户在“设置”中单击该应用程序的“强制关闭”,则会导致该应用程序再次“崩溃”。在这里,用户明确告诉 Android 您的应用程序行为不当,不应再次运行,除非用户另有说明。当然,如果用户再次启动您的活动,您将返回到“正常”状态。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应用程序应该处于运行状态才能触发意图吗? 的相关文章

  • 蓝牙适配器.getDefaultAdapter();返回空值

    我开始开发一个应用程序通过蓝牙与arduino设备进行通信 我正在初始化 bt 适配器 BluetoothAdapter btAdapter BluetoothAdapter getDefaultAdapter 问题是 btAdapter
  • 带有垂直选项卡的 Android 布局 - 设计类似于 hello 短信应用程序

    Can somebody please help me out in designing vertical tabs like in the given pic taken from hello sms app 我不要求提供代码片段 所以请
  • POST 请求出现 500 内部服务器错误

    这是我向服务器发送 POST 请求的代码 要发布到服务器的 JSON User Name dog Password 123 我如何创建 JSON 对象 object new JSONObject JSONObject jsonObject
  • 如何访问对话框中的 EditText 字段?

    如何访问对话框中的 EditText 字段 将 EditText 小部件放入对话框中
  • 如何使用 Espresso 访问外部网站上的元素

    使用 espresso 我们单击 登录 按钮 该按钮将启动一个外部网站 Chrome 自定义选项卡 您可以在其中登录 然后重定向回我们的 Android 应用程序 Espresso 有没有办法 1 验证正在启动的 URL 是否正确2 访问网
  • 使用缩略图作为毕加索的占位符

    从用户体验的角度来看 首先向用户显示缩略图 直到真实图像完成加载 然后向他显示 这会很棒 但是Picasso https github com square picasso仅使用资源文件作为占位符 例如 Picasso with conte
  • 字符串生成器最大长度

    我想知道字符串生成器 或字符串缓冲区 的最大容量是多少 我的 Android 应用程序中有一个静态变量 它应该保存日志字符串 它最多可以容纳 130 行和大约 10000 个字符 我如果我附加更多内容 但它只是不显示 没有错误 没有例外 所
  • Java中如何动态添加charsequence[]中的数据?

    初始化的一种方法charsequence is charsequence item abc def 但我不想以这种方式初始化它 有人可以建议其他方式吗 比如我们初始化的方式string arrays 首先 修复变量声明 charsequen
  • 应用程序可能在其主线程上做了太多工作 - Android

    您好 我正在开发一个 Android 应用程序 当我尝试从我的应用程序发送电子邮件时遇到此错误 我在后台发送邮件而不使用基于意图这个链接 http www oodlestechnologies com blogs Send Mail in
  • 冲突的 Android 错误消息:指定的子项已经有父项。您必须首先对孩子的父母调用removeView()

    最初我得到了这个错误 指定的子项已经有父项 您必须调用removeView 首先是孩子的父母 at customSection addView customLayout 所以我添加了 LinearLayout customLayout ge
  • 在 Phonegap 3.x CLI 上构建 android 发布 apk

    如何使用 Phonegap 3 x CLI 在本地构建 Android 应用程序并准备发布 我检查了项目的platforms android目录中生成的bin文件夹 并且只有 debug APK 顺便说一句 我使用这个命令 phonegap
  • 使用 Android Exoplayer 调整 Dash 流音量

    我正在尝试设置一个搜索栏来控制 exoplayer 流式破折号实例的级别 我正在使用的设置是演示项目的修改版本 并且无法确定我应该尝试影响搜索栏输出的哪个元素 即如何正确使用 MSG SET VOLUME 等 任何意见将不胜感激 我正在寻找
  • 当我转到下一个活动并再次返回时,如何恢复活动的值?

    我希望当用户返回我的第一个活动时恢复编辑文本的值 请帮帮我 提前致谢 这是我的第一个活动代码 用于在编辑文本中获取用户值 public class IntentActivity extends Activity EditText ed1 e
  • android 销毁时是否有任何视图回调?

    我有一个自定义视图组件 我在片段或活动中使用了它 我想知道当它从片段 活动中销毁时是否有回调 View 没有回调 除了finalize 但我不认为这就是你所要求的 查看有onDetachedFromWindow 当它从屏幕上移除时 但这与它
  • logcat 信息出现在 Android Studio 的“运行”选项卡中

    我的 android studio 运行选项卡很简单 然后它变得更难并给我更多信息 例如 logcat 中的信息 如何禁用或删除第二张图片中出现的更多信息并返回到第一张图片中的第一个外观 我只需要正在运行的 flutter 应用程序的日志输
  • 将字节数组保存为 Android 设备文件夹中的 jpg 文件

    我正在尝试将图像保存在 Android 设备的文件夹中 我使用的代码如下 var newFolder AndroidEnvironment GetExternalStoragePublicDirectory AndroidEnvironme
  • Android SSH 示例代码

    我想创建一个 android 活动 用于与远程设备 通过 Wifi 建立 SSH 会话并在远程设备上执行一些 Linux 命令 任何人都可以获得一个快速 简短的示例 用于使用以下命令进行连接 身份验证和发送远程命令Trilead https
  • 具有通用类的自定义 Android 适配器

    我正在尝试在 Android 中创建一个通用适配器 所以我不能一遍又一遍地编写它 问题是 它正在工作 但它的回收效果不是很好 它显示了我想要的内容 但是当我滚动时 它的顺序不同 public class CustomListViewAdap
  • Android Studio-公司域名

    在Android Studio中 当您创建新项目时 系统会提示您输入域名 我已经知道您可以制作一个 但是如果您想在 Google Play 商店上分发您的应用程序怎么办 即使我永远不会使用我的域 我是否需要购买一个网络域来分发我的应用程序
  • 在 Android 中将列表传递给另一个 Activity

    我已经创建了一个列表 并希望将该列表传递给另一个活动 但当我创建意图时 我在 putExtra 语句上收到错误 只是想知道是否有任何简单的方法来传递字符串列表而不是单个字符串 Thanks private List

随机推荐

  • 如何在 React 15 中创建默认为空的受控输入

    我想要控制文本输入 但它需要支持空值 这是我的组件 import React Component PropTypes from react import ControlLabel FormControl FormGroup from rea
  • 处理来自多个 AJAX JQuery 查询的独立数据

    我有许多从 for 循环发送的 AJAX 请求 并且希望根据循环中的位置将一些数据发送到回调函数 当我尝试将一个函数附加到每个请求时 它们似乎都从上次调用中获取数据 例如 for var i 0 i lt 4 i data some uni
  • 为什么 C# 中字典优于 Hashtable?

    在大多数编程语言中 字典优于哈希表 这背后的原因是什么 就其价值而言 一本字典is 概念上 哈希表 如果您的意思是 我们为什么要使用Dictionary
  • Kinect SDK 2 与 Xbox 360 Kinect 兼容吗?

    我正在尝试使用 Xbox 360 的 Kinect 开发一个有趣的人脸识别应用程序 我想知道应该使用哪个 SDK 和 Visual Studio 版本才能最好地访问 Kinect Kinect SDK 2 与 Xbox 360 Kinect
  • BoostBuild:patchlevel.h 不存在

    我正在尝试在 Ubuntu 11 04 上使用 bjam 编译 C 项目 我不断收到以下错误 libraries boost 1 44 0 boost python detail wrap python hpp 75 24 fatal er
  • 调试 pthread 需要什么?

    我想在我的自定义 Linux 发行版上调试 pthreads 但我缺少一些东西 我的主机是 Ubuntu 12 04 我的目标是使用 crosstool NG 交叉编译器工具集构建的 i486 定制嵌入式 Linux 操作系统的其余部分是使
  • 在待完成的活动消失后,找出当前活动最终是否将成为任务根

    If FirstActivity是任务的根 它会自行完成并启动SecondActivity 然后调用isTaskRoot in SecondActivity立即返回false 因为FirstActivity的完成是异步发生的 因此尚未完成
  • 给定日期,获取星期几 - SYSTEMTIME

    如果提供了日期 月 日 年 是否可以使用 SYSTEMTIME 确定星期几 或者该结构只是单向的 如果 SYSTEMTIME 无法做到这一点 使用 Win32 完成我所要求的任务的最轻量级方法是什么 根据msdn http msdn mic
  • 如何在 iOS 设备 ( Safari ) 中消除或限制滚动事件

    我正在尝试为移动和桌面设备实现无限滚动下拉菜单 在 无限滚动 下 我的意思是 如果您有 100 条记录 当到达可滚动容器的末尾时 将加载 20 条新记录 并且前 20 条记录将隐藏 向后方向相同 我遇到了以下问题 除了 Safari 移动浏
  • 必须先发出 STARTTLS 命令

    我正在用我的运行这个简单的例子Gmail帐户 但它无法正常工作并给出以下错误 send failed exception com sun mail smtp SMTPSendFailedException 530 5 7 0 Must is
  • std::common_type 的目的是什么?

    我开始看std common type我不太确定其目的和功能 有几件事仍然让我觉得奇怪 参数的顺序很重要 common type
  • 访问 Pod 中的资源

    我想将图像资源包含在 cocoapod 库中 但访问它们时遇到问题 我已阅读这些资源来寻求帮助 Cocoapods 资源 http guides cocoapods org syntax podspec html resources Coc
  • Rust 中的 Some 和 Option 有什么区别?

    它们是一样的吗 我有时可以看到文档使用它们 就好像它们是相等的一样 不 它们不一样 并且文档将它们视为相同是错误的 或者是您的误解 Option是一种类型 更准确地说 是泛型类型构造函数 Option
  • 返回具有多种类型迭代器的 impl Iterator [重复]

    这个问题在这里已经有答案了 我试图将我的问题提炼成一个最小的例子 在下面的函数中 如果我只有 if 语句的任一分支 则程序可以正常编译 fn foo bar bool gt impl Iterator
  • 如何从自定义主键迁移到默认ID [重复]

    这个问题在这里已经有答案了 我创建了一个以电子邮件地址作为自定义主键的模型 如下所示 email models EmailField max length 255 primary key True 现在我意识到这对我来说不是一个好主意 我想
  • 取消 UIView animateWithDuration 中的块

    void startLoading self blink void blink UIView animateWithDuration 0 5 delay 0 0 options UIViewAnimationOptionAllowUserI
  • 为什么我必须将 Vinyl-source-stream 与 gulp 一起使用?

    我正在尝试使用 gulp 和 browserify 来改变我的 jsx文件到 js files var gulp require gulp var browserify require browserify var reactify req
  • 来自 REST 端点的 PHP 模拟数据

    我正在围绕第三方 API 编写 PHP 包装器 对于练习来说更是如此 但我目前还没有在任何地方看到一个好的可用的 所以也许将来它会被其他人使用 我的单元测试非常简单 但现在我已经达到了极限 API 的开发人员有最大请求限制 每秒 1 个 每
  • 如何使提交按钮显示为链接?

    这在 IE 中不起作用 text button background transparent text decoration none cursor pointer
  • 应用程序应该处于运行状态才能触发意图吗?

    我有一个非常简单的 IntentReceiver 来在时间变化时接收事件 这是代码 public class IntentRec extends BroadcastReceiver Override public void onReceiv