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

Я следовал, документация 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, кажется, запускает мое действие с корректного действия. Затем, когда мое действие запускается, оно не содержит действия!? Что я делаю неправильно?

Соответствующая часть моей декларации:


   
    
    
   
   
  

13
задан Jeremy Logan 26 April 2010 в 03:27
поделиться

1 ответ

На это ушло слишком много часов моей жизни. При выполнении поиска из активности singleTop с возможностью поиска (в моем случае Waypoints) вы должны переопределить onNewIntent () и захватить поисковый запрос там. Что я и делал через несколько часов. Загвоздка заключалась в том, что getIntent () не возвращает намерение, используемое для вызова действия (голова взрывается). Кажется, он возвращает исходное намерение, которое открыло мое доступное для поиска действие до того, как я выполнил свой первый поиск .

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

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

16
ответ дан 2 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: