【发布时间】:2011-08-16 17:41:43
【问题描述】:
我有一段 Intent 代码:
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
i.setComponent(new ComponentName(packToLaunch, nameToLaunch));
startActivity(i);
这基本上会根据我传递给它的包名称启动一个新活动。有时,启动此新活动最多需要 5 秒钟。有没有办法加快这个过程?当我有一个仍在运行的应用程序时,甚至需要这么长时间。请帮忙...
【问题讨论】:
-
您要在哪个应用程序中启动什么活动? Activity 启动时间受 Activity 在其生命周期启动调用期间尝试执行的工作量的影响(
onCreate等) -
如果您只是在模拟器中进行测试,活动更改所需的时间比在实际手机上要长得多。特别是在调试模式下。但是按照 adamp 说的做,检查你调用的活动 onCreate 是否有低效的代码。
-
我有一个发送这个意图的服务,有时,启动应用程序需要很长时间。我注意到如果应用程序正在运行,它会立即启动,所以我想我真的无法控制应用程序在它的 onCreate 方法中需要多少处理。当我的用户选择它以便将其启动到内存中而不实际显示它时,是否有一种方法可以启动用于此意图的应用程序,有点像预取?
-
我对 ..NEW_TASK 标志也有同样的问题。有什么想法吗?
标签: android components android-intent package flags