使用自己的内存空间启动活动或服务

时间:2011-03-24 13:53:17

标签: android

我有一个需要运行的内存密集型进程,但仍允许用户继续使用该应用程序。如果用户在此过程运行时使用应用程序,则应用程序将丢失内存错误。以下代码从另一个应用程序启动应用程序。

ntent intent = new Intent(Intent.ACTION_MAIN); 
intent.setComponent(new ComponentName("com.package.address","com.package.address.MainActivity"));
startActivity(intent);

是否可以将作为新应用程序存在于应用程序内的活动或服务启动,或者让它在当前运行的应用程序的内存空间之外运行?

我读到了android:launchMode属性,但它看起来不像任何属性值都可以。

我还阅读了有关创建全局服务的内容,但文档没有说明服务运行的位置。全局服务是在自己的内存空间还是使用它的应用程序内存中运行?

任何建议都将不胜感激。

克里斯

1 个答案:

答案 0 :(得分:3)

我想我在http://developer.android.com/reference/android/app/Service.html

找到了答案

“如果我们想让这个服务在远程进程中运行(而不是其.apk的标准服务),我们可以在其manifest标签中使用android:process指定一个:”

<service android:name=".app.MessengerService" android:process=":remote" />

“请注意,此处选择的名称”remote“是任意的,如果您需要其他进程,则可以使用其他名称。”:“前缀将名称附加到包的标准进程名称。”

我假设远程进程意味着它在应用程序之外有自己的内存空间。如果不起作用,我会发布更新。