現在、複数のアクティビティで構成されるアプリがありますが、そのうちの1つは半透明です。アプリには通知があり、それをタップすると、現在画面上にあるものの上に半透明のアクティビティを開くようにしたい。現在のところ、これは私のアプリケーションが閉じている場合に動作しますが、実行中でオーバーレイアクティビティが開いた場合、残りのアプリケーションもフォアグラウンドになります。私は、オーバーレイだけがそこにあるようにしたいと思います。ユーザーが押し戻すと、元のアプリに戻ります。アプリの残りの部分を表示せずにオーバーレイアクティビティを起動する
この似顔絵はgoogle chromeのタブの活動です。私は現在、PendingIntentを通じて私の活動を開始しています
:
val intent = Intent(context, WebOverlayActivity::class.java)
//intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP or PendingIntent.FLAG_ONE_SHOT)
intent.putExtra(ARG_URL, ...)
intent.action = System.currentTimeMillis().toString() //dummy action
val bundle = ActivityOptionsCompat.makeCustomAnimation(context, R.anim.slide_in_right, R.anim.slide_out_right).toBundle()
val pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_ONE_SHOT, bundle)
これらのフラグは、私が他の場所で活動を開始したときに、私が持っているものですが、彼らは、この保留中の意図に影響を与えていないように見えます。前述したように、このアクティビティは半透明で、他のアクティビティを引き出します。
私はこのアクティビティを他のアプリケーションタスクと分けているような気がしますが、アプリ内でオーバーレイを使用していて、それが何かに影響するかどうかはわかりません。
アイデア?
編集1:ここでは私が最終的に実行可能な解決策を見つけた
<activity
android:name=".WebOverlayActivity"
android:theme="@style/AppTheme.Overlay">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!--other data sources-->
</intent-filter>
</activity>
質問に自分のアクティビティマニフェストを追加しました –