2017-08-22 56 views
1

我正在开发一个提供服务的android应用程序。Android - Android 6.0 - 应用程序 - 服务进程

我想有应用程序并在一个进程中运行的服务。

我的清单:

<application 
    android:process="@string/my_process" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     ... 
    </activity> 

    <service 
     android:name=".core.MessengerService" 
     android:enabled="true" 
     android:process="@string/my_process" > 
     <intent-filter> 
      ... 
     </intent-filter> 
    </service> 

    ... 

</application> 

但是当我调试一步一步在Android 6.0设备上的我的申请,我得到的消息冻结“应用程序正在等待调试器附加@my_progress ......”。 (没有我的Android 4.4设备上会出现此问题)

当我单独的应用程序和服务进入2个不同proccesses,调试正常工作,我的Android 6.0设备上。

回答

2

我想有应用程序并在一个进程中运行的服务。

然后摆脱清单中的所有android:process属性。缺省情况是所有组件都在单个进程中运行。

当我单独的应用程序和服务进入2个不同的proccesses

这不会发生。在每个进程中创建一个Application单例。

+0

所以,如果我宣布我的服务过程中与其他的名字,我的应用程序和我的服务仍然共享相同的进程? –

+0

我想在应用程序和服务之间共享我的对象。 –

+1

@ Anh-TuanMai:“我的应用程序和我的服务仍然共享相同的过程?” - 包含你的服务的进程将包含你的'Application'单例的一个实例。你的应用使用的任何其他进程将*也*包含你的'Application'单例的一个实例。您的应用程序使用的每个进程都将包含一个“Application”单例实例。 – CommonsWare