我有一个处理deeplink的活动,这是一个可浏览的活动
假设用户单击另一个应用程序上的链接,并且我的可浏览活动处理该意图
并启动应用程序,然后用户通过按后退按钮最小化应用程序
用于处理意图数据的类代码
Uri link = getIntent().getData();
如果用户从运行任务中重新打开应用程序,则getIntent()仍然具有数据
onDestroy可浏览活动的方法
@OverrIDeprotected voID onDestroy() {// Todo auto-generated method stubsuper.onDestroy();setIntent(null);}
setIntent(null)不起作用
所以我的问题是如何永久地从意图中删除数据
解决方法:
我在这里的答案有点迟,但我正在处理类似的问题,并找到了解决方案.您仍然在意图中看到数据的原因是您的应用最初是以包含数据的意图启动的.根据我的理解,原始意图存储在AndroIDs的ActivityManager中,并且是不可变的.当用户从“最近的任务”重新打开应用程序时,AndroID会使用该原始意图来重新创建应用程序.
但是,有一个解决方法.在您的应用onCreate()方法中,您可以检查是否设置了Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY,这样您的应用就可以区分它是否从“最近的任务”启动,因此,您可以避免使用数据包含在意图中.
如果从“最近的任务”打开应用程序,则将以下片段放入onCreate()方法将返回true
(getIntent().getFlags()& Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY)!= 0)
总结以上是内存溢出为你收集整理的java – android从getintent中删除数据全部内容,希望文章能够帮你解决java – android从getintent中删除数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)