美文网首页
Android 点击Home键之后启动Activity会延迟5秒

Android 点击Home键之后启动Activity会延迟5秒

作者: 我是你森哥哥 | 来源:发表于2018-10-09 15:51 被阅读0次

    就是当通过 home 键将当前 activity 置于后台时,任何在后台startActivity 的操作都将会延迟 5 秒,除非该应用获取了 “android.permission.STOP_APP_SWITCHES” 权限。

    关于延迟 5 秒的操作在 com.android.server.am.ActivityManagerService 中的 stopAppSwitches() 方法中,系统级的应用当获取了 “android.permission.STOP_APP_SWITCHES” 后将不会调用到这个方法来延迟通过后台启动 activity 的操作,事实上 android 原生的 Phone 应用就是这样的情况,它是一个获取了”android.permission.STOP_APP_SWITCHES” 权限的系统级应用,当有来电时,一个从后台启动的 activity 将突然出现在用户的面前,警醒用户有新的来电,这样的设计是合理的。

    关于此问题的解决方案

    1. 获取以下权限

    android.permission.STOP_APP_SWITCHES`
    

    2. 通过以下方式启动activity

    Intent intent = new Intent(context, TransparentActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
    pendingIntent.send();
    

    传送门 : https://stackoverflow.com/questions/5600084/starting-an-activity-from-a-service-after-home-button-pressed-without-the-5-seco

    相关文章

      网友评论

          本文标题:Android 点击Home键之后启动Activity会延迟5秒

          本文链接:https://www.haomeiwen.com/subject/zcxyaftx.html