これを解決できたようです。
a)stopServiceはサービスが停止することを保証していません。 hereを説明したように :これらのバインディングのすべてが削除されるまで
それは破壊されることはありません。サービスのライフサイクルの詳細については、サービスのドキュメントを参照してください。
b)私はstopSelf()という名前のインテントを送信してサービスを停止することができました。 しかし、プロセスの終了/開始は遅くなる可能性があります。
c)最高の解像度:Androidでは表示の視認性がチェックされているようです。サービスを殺すか、何かもっと複雑なことをする必要はありません。
現在の方法私はそれをやっています: - アクセシビリティサービス(既に私のアプリケーションで使用されています)は、 "com.google.android.packageinstaller"というクラスに洗練されていますが、 "com.android.packageinstaller.permission.ui .ManagePermissionsActivityアヒル 『」一度、このクラスでは検出
は、我々はする意図を送信』、そして私たちが出ているとき、我々は背中にしている別の意図を送ります。
サービスによってこれらの呼び出しを処理します。限りのAndroid 6.xでは、この "オーバーレイアラートが" なしで表示されているいくつかのデバイス上のバグがあるよう
[ourView].setVisibility(View.INVISIBLE); // when permission settings shown
[ourView].setVisibility(View.VISIBLE); // when normal flow
将来これを読む人のフォローアップ Android Oの時点では、GoogleがSYSTEM_ALERT_WINDOWのサポートを終了しているようです。 サックシステムの場合、これらの回避策は必要ないかもしれません。特に、ステータスバーなどのシステムコンポーネントをオーバレイしたい場合に便利です。 –