0

サービスとアクティビティを同じ Linux プロセスで同時に実行できますか?

private class Test extends  Service{
@Override
public int onStartCommand(Intent intent, int flags, int startId) {

    new Thread(new Runnable() {

        @Override
        public void run() {
            // Computational logic

        }
    }).start();


    return super.onStartCommand(intent, flags, startId);
}

@Override
public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;
}

}

スレッドは新しい Linux プロセスで実行されますか、それともこのサービス (UI プロセス) を呼び出す同じプロセスで実行されますか?

4

2 に答える 2

1

デフォルトでは、すべてのアプリケーションが独自のプロセスで実行され、アプリケーションのすべてのコンポーネントがそのプロセスで実行されます。

サービスとアクティビティを同じ Linux プロセスで同時に実行できますか?

上記のステートメントはすでにこの質問に答えており、Services docsがもう一度言っていることは次 のとおりです。

Service オブジェクト自体は、それが独自のプロセスで実行されていることを意味しません。特に指定がない限り、アプリケーションと同じプロセスで実行されます。

さらに読むには、次のリンクを検討してください: http://developer.android.com/guide/components/processes-and-threads.html

于 2013-10-07T07:09:28.823 に答える
1

ドキュメントから: http://developer.android.com/reference/android/app/Service.html

A Service is not a separate process. The Service object itself does not imply it is running in its own process; unless otherwise specified, it runs in the same process as the application it is part of.

A Service is not a thread. It is not a means itself to do work off of the main thread (to avoid Application Not Responding errors).

マニフェストで言及しない限り、サービスは同じスレッドで実行されます: ここを参照してください: http://developer.android.com/guide/topics/manifest/service-element.html

于 2013-10-07T07:12:24.253 に答える