私はTooleapSDKの開発者の一人であり、この問題にも対処しました。SYSTEM_ALERT_WINDOW
基本的に、アクティビティを別のアクティビティの上に表示するためにを使用する必要はありません。背景を透明にして、通常の「縮小」アクティビティを表示するだけです。
「縮小されたアクティビティ」を作成するには、高さと幅のアクティビティウィンドウレイアウトパラメータを変更します。
WindowManager.LayoutParams params = getWindow().getAttributes();
params.x = ...;
params.y = ...;
params.width = ...;
params.height = ...;
this.getWindow().setAttributes(params);
透明な背景を作成するには、マニフェストファイルのアクティビティ定義に追加します。
android:theme="@android:style/Theme.Translucent"
このようにして、フローティングアクティビティのような錯覚を作り出すことができます。
フォアグラウンドアクティビティのみが再開され、バックグラウンドアクティビティは一時停止されることに注意してください。しかし、ほとんどのアプリでは、これは問題にはならないはずです。
残っているのは、フローティングアクティビティをいつ起動するかだけです。
これは、通常のアクティビティを使用する「フローティング」電卓アプリの例です。電卓の下のアクティビティは別のアプリに属していることに注意してください。
