我的屏幕保护程序应用程序中出现奇怪的生命周期行为

2024-01-03

我刚刚开发了一个屏幕保护程序应用程序,我在其生命周期中发现了一个奇怪的行为。 我的工作流程是这样的:

  1. 开始我的RegisterService,我打电话的地方registerReceiver方法来注册一个BroadcastReceiver,可以接收ACTION_SCREEN_OFF.

2.在onReceive这个方法BroadcastReceiver,我启动一个活动作为屏幕保护程序。

3.在活动中,我写了Log.i()语句来跟踪其运行情况。

我的问题是:

当屏幕超时,或者当我按下POWER键时,屏幕关闭,系统将发送ACTION_SCREEN_OFF消息。正如我所料,我的接收器启动了屏幕保护程序活动。但是,我发现这个 Activity 调用onCreate(), onResume(), onPause(), onResume()根据logcat中的输出顺序。

It seems as if some a activity comes at front of my screensaver and finishes immediately, so my screensaver calls onPause() and then onResume(). enter image description here

任何想法?这个问题对我的编程造成了阻碍,请帮忙。谢谢!


基于对以下内容的简要研究PowerManagerService.java https://github.com/android/platform_frameworks_base/blob/master/services/java/com/android/server/PowerManagerService.java在源代码中,当需要关闭屏幕时,系统会启动一个动画(请查看类源代码的第 2183 行)来执行此操作。这意味着您的活动将暂停,然后在动画结束后恢复。

我不能 100% 确定这一点,因为我还没有在我的环境中测试过它,但这是我为您的情况找到的唯一合乎逻辑的解释。

希望这可以帮助...

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

我的屏幕保护程序应用程序中出现奇怪的生命周期行为 的相关文章

  • Android模拟器中的互联网连接始终显示连接状态

    我尝试了多种方法来检查我的 Android 模拟器中的互联网连接 ConnectivityManager conMgr ConnectivityManager getSystemService Context CONNECTIVITY SE
  • 使用 NEON 内在函数除以浮点数

    我当时正在处理四个像素的图像 这是在armv7对于 Android 应用程序 我想分一个float32x4 t向量由另一个向量组成 但其中的数字与大约不同0 7 to 3 85 在我看来 除法的唯一方法是使用右移 但这是针对一个数字2 n
  • 如何在 M1 Mac 上运行的模拟器上运行旧版 Android 版本(例如 API 级别 21)?

    虽然现在有一个适用于 M1 mac 的 Android Studio 和支持arm架构的Android模拟器镜像 https stackoverflow com questions 64907154 android studio emula
  • 使用 setText 更改文本后如何更新屏幕?

    现在我正在使用以下代码来更新TextView txtMain setText new text 该代码执行后 屏幕不会更新新文本 有没有办法可以强制文本立即更新 该代码执行后 屏幕不会更新新文本 一旦您将控制权归还给 Android 就应该
  • 在android中从JSON生成listview

    我对 Android 完全陌生 目前正在尝试从从我的服务器中提取的 JSON 数组生成列表视图 我已经阅读了很多教程 但没有运气 有一种独特的方法可以做到这一点 请您指出一些适合开始的资源 我读过了this http www josecgo
  • SQLite FTS4 使用特殊字符进行搜索

    我有一个 Android 应用程序 它使用 FTS4 虚拟表在 SQLite 数据库中搜索数据 它工作正常 但是当表中的数据包含特殊字符 如 或 时 SQLite MATCH 函数不会给出任何结果 我现在迷路了 谢谢 注意 默认的分词器真的
  • Android 辅助功能服务检测通知

    我试图让我的应用程序在显示通知时进行检测 我已在设置应用程序中启用它并且onServiceConnected确实接到电话 但是当我创建通知或通过 gmail 应用程序接收电子邮件时 什么也没有发生 onAccessibilityEvent没
  • 在 android studio 中找不到 SDK 位置

    我刚刚在 android studio 中导入了我的 eclipse 项目 我一直这么说 Error SDK location not found Define location with sdk dir in the local prop
  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • Android应用主题更换流畅

    我正在开发一个提供白天和夜间主题的项目 我正在更改主题 夜间主题 AppCompatDelegate setDefaultNightMode AppCompatDelegate MODE NIGHT YES 日主题 AppCompatDel
  • 在 Xamarin 中隐藏软键盘

    如何隐藏软键盘以便在聚焦时显示Entry在 Xamarin forms 便携式表单项目中 我假设我们必须为此编写特定于平台的渲染器 但以下内容不起作用 我创建自己的条目子类 public class MyExtendedEntry Entr
  • Android 为什么这不会抛出错误的线程异常?

    我的印象是视图只能从主线程操作 但是 为什么这不会崩溃 public class MainActivity extends Activity TextView tv Override protected void onCreate Bund
  • Android TextureView 和硬件加速

    我正在尝试实现上所示的示例这一页 http developer android com reference android view TextureView html 我已经在运行 android 4 及以上版本的三种不同设备上进行了尝试
  • React Native HTTPS Api 调用在 IOS 中有效,但在 Android 中无效

    所以基本上我所做的就是简单地对启用了 HTTPS 的 UAT 服务器进行简单的 Axios 调用 我已经在 IOS 中测试了整个应用程序 API 调用工作正常 但一旦我在 Android 中测试了相同的应用程序 在真正的 Android 设
  • 如何使用 isInEditMode() 在编辑器中查看自定义视图的布局

    我必须编辑一个具有自定义视图的软件 当我尝试编辑布局 xml 时 Eclipse 告诉我 在自定义视图中使用 View isInEditMode 可以在显示时跳过代码 在日食中 但我不知道how and where我必须使用isInEdit
  • android系统用户和linux root用户有什么区别

    当我将手机连接到电脑并使用adb shell与我的手机通信并输入的命令ps命令输出当前在我的手机上运行的进程信息 我发现有两个特殊用户 一个是root 另一个是system 据我所知 Android是基于linux的 所以root用户是最大
  • 如何在android中安装和使用couch db

    我应该如何在 android 中安装和使用 couch Db 我的意思是本地沙发数据库 我可以在平板电脑和模拟器中使用它 为此我必须遵循哪些步骤 我目前正在开发一个使用它的项目 有两种选择 1 couchbase android 是的 co
  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • Android Espresso 单击按钮时出现错误

    我正在尝试使用 espresso 框架为 Android 应用程序编写一些 UI 测试 现在我只是检查启动屏幕上是否存在所有元素 然后尝试单击登录按钮 单击按钮时 测试由于错误而失败 我似乎无法理解为什么会发生这种情况 我的测试代码是 Ru
  • Keystore getEntry 在 Android 9 上返回 NULL

    c我已对存储在 Android 密钥库中的登录密码进行了加密和解密 在 Android 9 上 我观察到应用程序在尝试解密密码时崩溃 我无法重现它 但拥有 Pixel 3 的用户是崩溃的设备之一 下面是我如何从密钥库解密密码 private

随机推荐

  • 访问和使用数据库中的 .jsf 文件

    使我的 Web 应用程序能够使用数据库中存储的 JSF 文件的最佳方法是什么 我希望能够动态 在运行时 创建新的 JSF 页面 无需重新部署应用程序即可使用该页面 换句话说 我希望将 JSF 页面的大部分存储在数据库中 并希望 JSF 使用
  • 在 P/Invoke 中为固定字符串传递什么?

    假设这个 C 函数 void do something const char str 它将字符串存储在某处稍后参考 此外 我在 C 中有这个签名来调用这个函数 DllImport NativeLib static extern void d
  • Java 中的窗口拖动事件

    我正在尝试在 Java 中实现类似 OS X 抽屉的功能 因此我将一个窗口隐藏在另一个窗口下 但是 当我拖动主窗口 JFrame 时 我需要在它移动到下面的辅助窗口 JWindow 时发送更新 所以它会是这样的 JFrame JWidow
  • 使用 laravel forge 永远运行 artisan 命令?

    有人可以建议我如何让我的自定义 artisan 命令与守护进程一起永远运行吗 我看过很多关于队列的教程 但它并不完全适合 我正在尝试使用 pubnub 的 php 库完成 订阅 这似乎是最好的方法 除非我错过了一些东西 提前致谢 如果您从命
  • 如何使用 LDAP 组成员身份同步设置 TeamCity [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 这是一个简短的指南 帮助您进行 TeamCity 的 LDAP 设置 在我设法让同步运行之前 我个人经历了相当多的挣扎 默认配置文件有
  • 是否可以在 MATLAB 中实现以下内容?

    给定 5x5 的图像 I i j 4 i j 当 i j 0 1 2 3 4 时 以及以下 Prewitt 运算符 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 1 1 1 如何计算梯度 幅度和方向 使用 Prewitt 算子
  • ASP.NET Core - 如何注入 IOptionsMonitor

    我怎样才能注射IOptionsMonitor
  • 将 php 与 bigcommerce api 集成

    我是 Bigcommerce Api 整个概念的新手 但我的 php 编程很好 如果我要将我可能创建的 php 代码与 bigcommerce api 集成 我无法确定从哪里开始 我的文件去哪里 他们具体是如何互动的 在 Bigcommer
  • 默认路由总是在react router中执行

    我正在开发一个项目 其中使用了引人注目的Dash 模板 在这里 我在从 URL 更改路由时遇到一些路由问题 auth js import React lazy Suspense from react import Spin from ant
  • CancellationToken 泄漏内存

    我有一个计时器 每 2 秒启动 2 个任务 我在一个简单的列表中跟踪这些任务 这样我可以在停止应用程序时等待它们完成 这些任务有效地进入数据库 运行几次更新并完成 任务本身的运行时间不会超过一秒 global variables to ke
  • 使用点击数据更新绘图[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试构建一个闪亮的应用程序 它允许用户单击绘图上的多个位置 然后单击按钮将这些坐标添加到绘图中 问题是我需要将这些坐标作为向量传
  • Haystack Faceted:__init__() 得到了意外的关键字参数“facet_fields”

    在享受 haystack 2 4 1 Django 1 8 的第一个成果的同时 我不得不承认我在学习它时遇到了困难 文档有时不完整 并且某些功能只有很少的示例 分面搜索就是其中之一 我正在关注文档 http django haystack
  • 如何使用openCV保存裁剪后的图像?

    我正在使用 python 中的 opencv 和face recognition 库捕获图像 这是我的程序的片段 while True ret frame video capture read rgb frame frame 1 face
  • Javascript平方数组中的所有元素不起作用

    function square arr var result concat arr result forEach function i i i i console log i return result var arr 1 2 3 4 co
  • BlueGiga BLE 开发工具

    我正在考虑尝试BlueGiga BLE112 套件 https www bluegiga com en US products bluetooth 4 0 modules ble112 bluetooth smart module 为 iO
  • 如何更改 DRF 中的验证错误响应?

    我想更改 JSON 当发生验证错误时 rest framework 或 Django 返回该 JSON 我将使用我的视图之一作为示例 但我想更改所有视图的错误消息 假设我有这个视图 旨在登录用户 提供电子邮件和密码 如果这些正确 它将返回
  • 使用 ggplot 堆积条形图

    我正在尝试使用以下数据框制作堆积条形图 totalleft 1S 2S 3S 4S 12S 25S tests A 000 5 0 10 10 0 NA A 000 A 001 10 8 10 NA NA NA A 001 A 002 5
  • 在 Android 中使用 Cordova 5.0 构建自定义 WebView

    我想用 Cordova 构建自定义 WebView 为此 我想重写 setWebChromeClient 和 setWebViewClient 方法 但为此我需要一个 SystemWebViewClient 它需要一个 SystemWebV
  • 当电话中断应用程序时,Android 应用程序会发生什么情况?

    我正在开发一个应用程序 在我的一项活动中我显示了一个进度对话框 我已经对其进行了管理 以便它在旋转过程中正确显示 并且我认为这也可以处理电话呼叫的情况 但是当我用电话测试它时 对话框消失了 那么电话呼叫到底对应用程序做了什么以及它是应用程序
  • 我的屏幕保护程序应用程序中出现奇怪的生命周期行为

    我刚刚开发了一个屏幕保护程序应用程序 我在其生命周期中发现了一个奇怪的行为 我的工作流程是这样的 开始我的RegisterService 我打电话的地方registerReceiver方法来注册一个BroadcastReceiver 可以接