我有一个需要运行的内存密集型进程,但仍允许用户继续使用该应用程序。如果用户在此过程运行时使用应用程序,则应用程序将丢失内存错误。以下代码从另一个应用程序启动应用程序。
ntent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("com.package.address","com.package.address.MainActivity"));
startActivity(intent);
是否可以将作为新应用程序存在于应用程序内的活动或服务启动,或者让它在当前运行的应用程序的内存空间之外运行?
我读到了android:launchMode属性,但它看起来不像任何属性值都可以。
我还阅读了有关创建全局服务的内容,但文档没有说明服务运行的位置。全局服务是在自己的内存空间还是使用它的应用程序内存中运行?
任何建议都将不胜感激。
克里斯
答案 0 :(得分:3)
我想我在http://developer.android.com/reference/android/app/Service.html
找到了答案“如果我们想让这个服务在远程进程中运行(而不是其.apk的标准服务),我们可以在其manifest标签中使用android:process指定一个:”
<service android:name=".app.MessengerService" android:process=":remote" />
“请注意,此处选择的名称”remote“是任意的,如果您需要其他进程,则可以使用其他名称。”:“前缀将名称附加到包的标准进程名称。”
我假设远程进程意味着它在应用程序之外有自己的内存空间。如果不起作用,我会发布更新。