2017-08-22 5 views
1

私はサービスを提供するアンドロイドアプリケーションに取り組んでいます。Android - Android 6.0 - アプリケーションプロセス - サービスプロセス

アプリケーションとサービスを1つのプロセスで実行したいと考えています。

私のマニフェスト:

<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つの異なるプロセスに分けると、Android 6.0デバイスでデバッグが正常に動作します。

答えて

2

私は、アプリケーションとサービスを1つのプロセスで実行したいと考えています。

次に、マニフェストのすべてのandroid:process属性を取り除きます。デフォルトでは、すべてのコンポーネントが単一のプロセスで実行されます。

そして、私は、アプリケーションと2つの異なるproccesses起こらない

にサービスを区切るとき。 Applicationシングルトンはすべてのプロセスで作成されます。

+0

サービスプロセスを別の名前で宣言しても、アプリケーションとサービスは同じプロセスを共有していますか? –

+0

アプリケーションとサービスの間でオブジェクトを共有したいと思います。 –

+1

@ Anh-TuanMai: "私のアプリケーションと私のサービスはまだ同じプロセスを共有していますか?"あなたのサービスを含むプロセスには、 'Application'シングルトンのインスタンスが含まれます。あなたのアプリケーションが使用する他のプロセスは、あなたの 'Application'シングルトンのインスタンスも含みます*。あなたのアプリケーションで使用されるすべてのプロセスには、 'Application'シングルトンのインスタンスが含まれます。 – CommonsWare

関連する問題