2

こんにちは、私のアプリでは、ユーザー補助サービスがオフになっている場合にオンにするかどうかを尋ねるダイアログがあります。彼らが大丈夫なら、このようにアクセシビリティを開放するインテントを起動します

Intent intent = new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivityForResult(intent, 0);

これは正常に機能しますが、アクセシビリティから家に帰ってアプリを再度開くと、ダイアログなどは表示されず、毎回アクセシビリティに直接開きます。それを回避する唯一の方法は、ホーム画面に戻るまで反撃し、アプリを再度開いてもアクセシビリティが開かなくなることです。

バックアウトしない限り、古いインテントを起動し続けるのはなぜですか? 反撃できないのはなぜですか?

助けてくれてありがとう

4

2 に答える 2

1

フラグ FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET を使用

Intent intent = new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivityForResult(intent, 0);

ただし、ユーザーが履歴リストからアプリを起動すると、引き続き表示されます。

于 2013-08-14T18:49:15.173 に答える
0

問題は、あなたの活動がまだ結果を待っていることだと思います。

その場合は、 onResume() で forceFinish() を呼び出すと問題が解決するはずです。

http://developer.android.com/reference/android/app/Activity.html#finishActivity%28int%29

于 2013-08-14T18:47:55.057 に答える