【发布时间】:2014-10-08 19:59:17
【问题描述】:
已搜索但未找到解决方案。有没有人遇到同样的问题并想办法解决?
拥有处理共享的活动(使用 launchMode="singleTask")。
Activity 运行时,打开相机应用通过此应用进行分享。此活动的 onNewIntent(Intent intent) 使用 Intent { act=android.intent.action.SEND...} 调用。共享请求处理完毕,目前一切顺利。
然后点击“返回”按钮关闭应用程序。 现在打开正在运行的应用程序托盘(长按主页按钮)并选择此应用程序将其打开。
应用的Activity onCreate() 调用时使用savedInstanceState==null,最后一次分享请求的intent 也被传入:{act=android.intent.action.SEND ...}。
在这种情况下,它总是会在处理一些共享请求时打开应用程序,这在之前已经处理过。
有没有办法避免消费的意图再次被传入?
谢谢! /L
【问题讨论】:
-
我认为您无法避免再次传递消耗的意图。但是您可以检查该活动是否正在从历史记录中启动,如果是,请不要再次处理它。看看这个答案:stackoverflow.com/a/25535915/1970641
-
谢谢塔托。问题是有时您无法判断活动是否重新启动。在点击“返回”按钮并从正在运行的应用程序托盘重新打开应用程序的情况下,onCreate() 以 saveInstanceState==null 的形式传入,因此与重新启动相同。
-
这就是我使用组合的原因。你检查了答案的
boolean launchedFromHistory = intent != null ? (intent.getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) != 0 : false;部分吗?