ベストプラクティスではないかもしれませんが、これが私がやりたいことです。
ブロードキャストレシーバーが呼び出されたら、フルスクリーンではなく、背景が透明な新しいアクティビティを開始します。これは、現在のアクティビティ/デスクトップの壁紙の上に開きます。
私がこれまでに持っているコードは次のとおりです。
私は新しいアクティビティを作成して呼び出します:
Intent testActivityIntent = new Intent(context, com.andy.tabletsms.work.SMSPopup.class);
testActivityIntent.putExtra("com.andy.tabletsms.message", main.msgs.get(i));
testActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
testActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
context.startActivity(testActivityIntent);
そして、アクティビティのテーマは次のとおりです。
android:theme = "@ android:style / Theme.Translucent.NoTitleBar"
そして、アクティビティのコードは、単純なレイアウトの単なる標準的なアクティビティです。ただし、そのブロードキャストレシーバーがアクティビティを開始すると、アプリケーションの開始時に開始された前のアクティビティの上に表示されます.....この画像のように: