2017-07-14 1 views
0

アクティビティコンテキスト外のアクティビティを開始する場合は、アプリケーションコンテキストを使用します。 applicationContext.startActivity(new Intent(TestActivity.class ....))別のプロセスでアプリケーションコンテキストからアクティビティを開始

startActivityを呼び出すサービスが別のプロセスにある場合、applicatioContextも別のプロセスに属していますか? androidは、すべてのプロセスコンポーネントのapplicationContextを実行していますか?

TestActivityのプロセスが実行されていない場合は、別のプロセスから起動することもできますか?

答えて

0

あなたがサービスからのアクティビティを起動したい場合は、PendingIntentを使用する必要がありますのgetContext()

Intent intent = new Intent (YourActivity.class, getContext()); 
PendingIntent pi = PendingIntent.getActivity(getContext(), 0, intent, 0); 
pi.send(); 

は、サービスのコンテキスト

0

アプリケーションコンテキストは、任意のプロセスに属していないです。すべてのプロセスはアプリケーションに属します。 Androidアプリケーションのコンテキストはシングルトンなので、すべての用途で1つだけです。

サービスまたは他のアクティビティコンテキスト以外のアクティビティからアクティビティを開始する場合は、Intent.FLAG_ACTIVITY_NEW_TASKフラグを使用する必要があります。

Intent dialogIntent = new Intent(this, MyActivity.class); 
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(dialogIntent); 

使い方は次のようです

関連する問題