gpt4 book ai didi

android - 为什么我的可搜索 Activity 的 Intent.getAction() 为空?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:23:39 26 4
gpt4 key购买 nike

我关注了 SearchManager文档但我仍然无法使我的应用程序的 Activity 之一可搜索。在我的 Activity 中,搜索对话框出现,我输入一个查询,点击搜索,我的 Activity 重新打开,然后我在日志中看到这个:

D/SearchDialog(  584): launching Intent { act=android.intent.action.SEARCH flg=0x10000000 cmp=com.clinkybot.geodroid2/.views.Waypoints (has extras) }
I/SearchDialog( 584): Starting (as ourselves) #Intent;action=android.intent.action.SEARCH;launchFlags=0x10000000;component=com.clinkybot.geodroid2/.views.Waypoints;S.user_query=sdaf;S.query=sdaf;end
I/ActivityManager( 584): Starting activity: Intent { act=android.intent.action.SEARCH flg=0x10000000 cmp=com.clinkybot.geodroid2/.views.Waypoints (has extras) }
D/WAYPOINTS( 1018): NI Intent { cmp=com.clinkybot.geodroid2/.views.Waypoints (has extras) }
D/WAYPOINTS( 1018): NI null
D/WAYPOINTS( 1018): NI false

在我看来,直到最后三行之前一切都很好。 “NI”行分别是 getIntent().toString()、getIntent().getAction()getIntent().hasExtra(SearchManager.QUERY)

ActivityManager 似乎正在以正确的操作开始我的 Activity 。然后当我的 Activity 开始时,它不包含任何 Action !?我做错了什么?

我的 list 的相关部分是:

<activity android:name=".views.Waypoints" android:label="Waypoints" android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>

最佳答案

这花费了我太多的时间。从可搜索的 singleTop Activity (在我的例子中是 Waypoints)执行搜索时,您必须覆盖 onNewIntent() 并在那里获取搜索查询。几个小时后,我正在做。问题是 getIntent() 不返回用于调用 Activity 的 Intent(头部爆炸)。它似乎返回了在我执行第一次搜索之前打开我的可搜索 Activity 的原始 Intent。

onNewIntent method接收搜索 Intent 。我将 getIntent() 替换为来自 onNewIntent() 的参数,然后 boom,progress。

虽然我必须承认;弄清楚这一点可以缓解无法摆脱背景中与星共舞的声音的挫败感。

关于android - 为什么我的可搜索 Activity 的 Intent.getAction() 为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2708392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com