web-dev-qa-db-ja.com

コンテキストがアクティビティコンテキストではなくアプリケーションコンテキストの場合にインテントを開始する方法

BroadcastReceiverを拡張するクラスからアクティビティを開始しようとしています。

public void onReceive(Context context, Intent intent) {

問題は、パラメーターコンテキストがアプリケーションコンテキストであり、アクティビティコンテキストではないことです。

アプリケーションコンテキストを使用してインテントを開始する方法はありますか?

25
Marco Matarazzi

これは、コンテキストを使用して別のアクティビティを呼び出す方法のサンプルコードであり、要件に従ってフラグを設定します。

public void onReceive(Context context, Intent intent) { 

  Intent startActivity = new Intent();  
  startActivity.setClass(context, xxx.class); 
  startActivity.setAction(xxx.class.getName()); 
  startActivity.setFlags( 
              Intent.FLAG_ACTIVITY_NEW_TASK 
              | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 
  context.startActivity(startActivity); 
}
39
SBJ