我遇到了此Android问题中描述的问题:http: //code.google.com/p/android/issues/detail?id = 4536
简单地说,按下HOME按钮后,android会阻止服务和广播接收器调用startActivity 5秒钟.
我也注意到了(理论上),具有以下许可:
"android.permission.STOP_APP_SWITCHES"
Run Code Online (Sandbox Code Playgroud)
允许您调用resumeAppSwitches(在ActivityManagerService中定义).查看最新版本的ActivityManagerService,将删除此代码.
问题:如何在没有5秒延迟的情况下使用startActivity启动活动?
我有一个Service
当一个函数给我true
时它将启动一个新的Activity
但它需要5秒...
我已经读过这个issue
,我在StackOverflow
这个例子中找到了"避免"这个bug.
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
try {
pendingIntent.send();
} catch (PendingIntent.CanceledException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
但遗憾的是它没有Activity
更快启动,我不需要处于初级状态(如果可能的话更好),但是我不想等待+5秒来启动新功能Activity
,你是否知道要避免这种情况?
我正在使用,PendingIntent
因为我发现那个人说它应该解决这个问题:
在没有5秒延迟的情况下按下HOME按钮后从服务启动一个活动
如果我按下back button
它会自动启动它,0延迟,但我正在按下它home button
.