Почему Intent.getAction () null для поисковой активности?

Я следил за документацией SearchManager, но у меня все еще возникают проблемы с возможностью поиска в одном из моих приложений. Из моей активности открывается диалоговое окно «Поиск», я ввожу запрос, ударяю поиск, моя активность снова открывается, и я вижу это в журнале:

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 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> 

Solutions Collecting From Web of "Почему Intent.getAction () null для поисковой активности?"

Это заняло слишком много часов моей жизни. При выполнении поиска из одноразового действия с возможностью поиска (в моем случае Waypoints) вы должны переопределить onNewIntent () и захватить там поисковый запрос. Который через несколько часов, я делал. Уловкой было то, что getIntent () не возвращает Intent, используемый для вызова активности (head explodes). Кажется, он возвратил первоначальное намерение, которое открыло мою поисковую активность, прежде чем я выполнил свой первый поиск .

Метод onNewIntent получает намерение поиска. Я заменил getIntent () параметром fromNewIntent () и стрелой, прогресс.

Хотя я должен признать; Выяснение этого облегчает разочарование в том, что он не может избежать звука Танца со Звездами, ревущими на заднем плане.