java - Android 在后台运行一段时间后杀死了我的应用
问题描述
我有一个发送 TCP 消息的应用程序。只要应用程序还活着,我就需要发送消息。因此,我授予对电池优化的访问权限并添加了所有必需的唤醒锁,即使屏幕关闭,一切似乎也能正常工作。问题是我注意到每次我将手机与应用程序放在后台时,当我在几个小时(或更短时间)后回来时,没有发送任何消息,当我进入我的应用程序时,它会作为新实例加载并不像来自后台的应用程序。我该怎么做才能让我的应用程序不被 Android 杀死?
我想这就是发生的事情
解决方案
您需要使用前台服务;通过 启动的服务startForeground()
。
该服务不会“重新打开”您的活动;它是您的应用程序的一个组件,可能是长期存在的。您可能更愿意将其视为没有任何视图的活动。
推荐阅读
- javascript - 读取在 JS 中创建的 Laravel Blade 中的 cookie
- java - 错误 405 - 在 Java HTTP 函数调用中找不到方法
- java - 无法找到或加载主类 com.simplilearn.testing.oops.LunchNewBrowser 原因:使用 Selenium Java 的 java.lang.ClassNotFoundException 错误
- reactjs - 在 ScrollView 中放置一个包含 FlatList 的组件以进行下拉刷新?
- powerbi - 如何将 YYYYMM 转换为日期时间或数字?
- matlab - 从 ployshape 类中提取值
- javascript - 嵌入被多次发送。如何让它只发送一次?
- c# - 在 Azure 函数中处理 NLog
- prolog - 显示所有大于 N 的列表元素 - Prolog
- apache-spark - Hive TRANSFORM 接收连接数组值的 NULL