我遇到了此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启动活动?
Chi*_*bin 48
这是我找到的解决方案.
将你想要的意图立即放在PendingIntent中,然后在其上调用send()方法.
所以不要这样
Intent intent = new Intent(context, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
就这样做
Intent intent = new Intent(context, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent =
PendingIntent.getActivity(context, 0, intent, 0);
try {
pendingIntent.send();
} catch (PendingIntent.CanceledException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
Foa*_*Guy 16
我认为没有办法用当前的API做到这一点.我认为这就是他们打算如何工作,以便当用户通过主页按键退出时,应用程序无法强制自己重新打开.您可以将home/launcher intent添加到过滤器中,以用于您尝试启动的任何活动.然后,用户可以选择基本上将该应用视为主屏幕.然后,只要用户按下主页按钮,它就会毫不拖延地启动(他们必须从弹出的列表中选择它,询问他们想要使用哪个应用程序来完成此操作,但他们可以检查始终使用这个应用程序将在未来采取这一步.)
归档时间: |
|
查看次数: |
16012 次 |
最近记录: |