不于后台启Activity准则

场景

按BACK键后重启速度很快,按Home键后约5秒才能看到。

官方

谷歌Android API Guides为避用户毫不知情时突中断用户进行工作而要求不于后台(包括Service和BroadcastReceiver)启Activity。

That is, don't call startActivity() from BroadcastReceivers or Services running in the background. Doing so will interrupt whatever application is 
currently running, and result in an annoyed user. Perhaps even worse, your Activity may become a "keystroke bandit" and receive some of the input 
the user was in the middle of providing to the previous Activity. Depending on what your application does, this could be bad news.

分析

延迟5秒在com.android.server.am.ActivityManagerServicestopAppSwitches()中,系统级应用获android.permission.STOP_APP_SWITCHES后将不调该法延迟通后台启Activity。原生Phone应用即一获android.permission.STOP_APP_SWITCHES权限系统级应用,有来电时一从后台启Activity突现于用户面前警醒用户新来电。

解决

  • root手机
  • AndroidManifest.xml添android.permission.STOP_APP_SWITCHES权限
  • push所开发的应用程序到手机/system/app目录中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明
在 Android 中,Activity 是一种表示用户界面的组件。它们通常是应用程序的主要界面,并在用户与应用程序交互时显示。当 Activity 不再处于用户视线范围内时,系统可能会将其销毁以释放资源。如果您需要一个 Activity 可以继续运行,即使它没有用户焦点,您可以使用以下方法之一来实现后台保活。 1. 使用 Service:在 Android 中,Service 是一种可以在后台保持运行的组件。您可以将 Activity 与 Service 结合使用,使 Activity后台保持活动状态。为此,您需要动一个 Service 并在 Activity 中绑定到该 Service。 2. 使用 Foreground Service:Foreground Service 是一种特殊类型的 Service,它允许您将服务置于前台,并在状态栏中显示通知。这使得系统更难以杀死服务,因为用户可以看到通知并知道服务正在运行。 3. 使用 JobScheduler:JobScheduler 是一个系统服务,它允许您安排后台任务以在特定条件下运行。您可以使用 JobScheduler 来安排定期运行的任务,以确保您的应用程序保持活动状态。 4. 使用 AlarmManager:AlarmManager 是一种系统服务,它允许您在指定的时间间隔内安排定期操作。您可以使用 AlarmManager 来动您的 Activity,并在一定时间后重新动它。 请注意,为了确保您的应用程序保持活动状态,您需要避免使用过多的 CPU 和内存资源。您应该尽可能地优化您的代码,并尝试使用低功耗模式来减少电池消耗。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

snpmyn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值