2011-12-30 22 views
1

私は同じ時間にサービスとアクティビティを開始したいと考えています。私は次のコードを使用しています、それは正しいですか?Android - 同じ時間にサービスとアクティビティを開始するにはどうすればよいですか?

startService(new Intent(this, Service.class)); 
Intent intent = new Intent(this, Activity.class); 
startActivity(intent); 

ただし、ここではサービスが完了した後、アクティビティが開始されます。どうして? 誰かを助けてください。

+0

はい。startActivityメソッドがstartService()メソッドの後に実行されるためです。 –

+0

同じ時間にサービスとアクティビティを呼び出す方法は? – Baskar

+0

startServiceの戻り値は何ですか?サービスが開始されているかどうかがわかります。 http://developer.android.com/reference/android/content/Context.html#startService%28android.content.Intent%29 –

答えて

1

少数のスレッドを起動して、セマフォをバイナリフラグで使用することができます。

+0

それについていくつかのサンプルコードを記述できますか? – Baskar

+0

非常に基本的なものです。 –

+0

私は以下のコードを試しても動作していません。新しいスレッド(){public void run(){try {startService(new Intent(this、Service.class)); } catch(例外e){}}} .start();意図インテント=新しいインテント(this、Activity.class); startActivity(インテント); – Baskar

1

同じプロセスで実行されているアクティビティとサービスを同時に開始する方法はありません(デフォルトの動作です)。

サービスのonCreate()メソッドは、メイン(UI)スレッドで実行されます。

アクティビティのonCreate()メソッドは、メイン(UI)スレッドでも実行されます。

サービスを別のプロセスで実行させることが、より多くの場合とより少ない場合の両方で開始する唯一の方法です。

関連する問題