Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android从getintent中删除数据_Java_Android_Android Intent - Fatal编程技术网

Java android从getintent中删除数据

Java android从getintent中删除数据,java,android,android-intent,Java,Android,Android Intent,我有一个处理deeplink的活动,这是一个可浏览的活动 假设用户单击另一个应用程序上的链接,而我的可浏览活动处理了该意图 并启动应用程序,然后用户按后退按钮最小化应用程序 用于处理意图数据的类代码 Uri link = getIntent().getData(); 如果用户从运行任务重新打开应用程序,getIntent()仍有数据 可浏览活动的onDestroy方法 @Override protected void onDestroy() { // TODO Auto-generated m

我有一个处理deeplink的活动,这是一个可浏览的活动

假设用户单击另一个应用程序上的链接,而我的可浏览活动处理了该意图

并启动应用程序,然后用户按后退按钮最小化应用程序

用于处理意图数据的类代码

Uri link = getIntent().getData();
如果用户从运行任务重新打开应用程序,getIntent()仍有数据

可浏览活动的onDestroy方法

@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
setIntent(null);

}
setIntent(null)不工作


因此,我的问题是如何从intent中永久删除数据

您必须逐个键删除数据。我认为不能用一行删除所有数据

如果要删除特定的键,则应使用==>
getIntent().removeExtra(“键”)

getIntent().setAction("");
它将删除您的数据


更多信息==>

我在这里的答案有点晚,但我正在处理一个类似的问题,并找到了解决方案。您仍然在意图中看到数据的原因是,您的应用程序最初是以包含数据的意图启动的。据我所知,这个原始意图存储在Androids的ActivityManager中的某个地方,是不可更改的。当用户从“最近的任务”中重新打开应用程序时,Android将使用该原始意图重新创建应用程序

然而,有一个解决办法。在apps onCreate()方法中,您可以检查Intent.FLAG\u ACTIVITY\u LAUNCHED\u FROM\u HISTORY是否已设置,这将允许您的应用区分是否从“最近的任务”启动,因此,您可以避免使用Intent中包含的数据

如果应用程序是从“最近的任务”打开的,那么将以下代码片段放入onCreate()方法将返回
true


(getIntent().getFlags()&Intent.FLAG活动从历史记录中启动)!=0)

你是救命恩人。在尝试了包括1在内的所有其他解决方案后。setIntent(null)2。setAction(“”)和其他所有功能,这是唯一有效的功能。谢谢你应该得到一个+100000000的答案!谢谢!