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 回答