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