我一直在寻找这个!
所以我有一个应用程序小部件,它有一个配置活动,我可以在按下应用程序上的按钮时打开该活动。场景是:
打开应用程序。
使用主页按钮关闭应用程序。
选择添加我的小部件
我已经配置了小部件。
放置在我的主屏幕上
然后使用小部件上的按钮再次打开配置活动。
按返回取消新配置将使我返回应用程序。
当我按下回击键时,我只想回家。
基本上我要问的是。如何在其自己的任务/堆栈中启动配置活动?
我已经研究过意图过滤器,但我不太确定,或者可能与它所在的包有关,或者也许这是不可能的!
我想这可能与我用来启动配置活动的意图有关
Intent configIntent = new Intent(this, Configuration.class);
configIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
remoteView.setOnClickPendingIntent(R.id.config, PendingIntent.getActivity(this, 0, configIntent, PendingIntent.FLAG_UPDATE_CURRENT));
也许因为我以“this”作为上下文启动它,所以它将始终在我的应用程序堆栈中启动......
但待处理的意图 api 是:
待处理意图 API1 http://developer.android.com/reference/android/app/PendingIntent.html#getActivity%28android.content.Context,int,android.content.Intent,int%29“请注意,该活动将在现有活动的上下文之外启动”
所以,是的,我现在不再说话了,因为我最终只是在原地打转!
EDIT
于是尝试过android:launchMode="singleInstance"
在清单中如所述。这有效,但是它阻止了“startActivityForResult”行为的正常工作。 (这是配置活动的全部原因)收到错误:
警告/ActivityManager(59):活动正在作为新任务启动,因此取消活动结果。
所以还是没有找到解决办法。