服务或广播启动activity慢

2,183 阅读1分钟

Google本身不建议再后台(service和broadCast)里启动一个Activity,但是往往在开发中无门确实需要这样的操作,所有有时候启动这个Activity会很慢,这是因为当点击 home 键将当前 Activity 置于后台时,在后台startActivity 的操作都将会延迟 5 秒,除非该应用获取了 "android.permission.STOP_APP_SWITCHES" 权限

系统权限,不能赋予android.Manifest.permission.STOP_APP_SWITCHES的权限

如果要解决该问题,你可以root你的设备,然后赋予android.Manifest.permission.STOP_APP_SWITCHES权限

或者通过下面的方式来启动:

try {
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, pointIntent, 0);
    pendingIntent.send();
} catch (Exception e) {
    e.printStackTrace();
}