Я следовал, документация 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, кажется, запускает мое действие с корректного действия. Затем, когда мое действие запускается, оно не содержит действия!? Что я делаю неправильно?
Соответствующая часть моей декларации:
На это ушло слишком много часов моей жизни. При выполнении поиска из активности singleTop с возможностью поиска (в моем случае Waypoints) вы должны переопределить onNewIntent () и захватить поисковый запрос там. Что я и делал через несколько часов. Загвоздка заключалась в том, что getIntent () не возвращает намерение, используемое для вызова действия (голова взрывается). Кажется, он возвращает исходное намерение, которое открыло мое доступное для поиска действие до того, как я выполнил свой первый поиск .
Метод onNewIntent получает цель поиска. Я заменил getIntent () параметром onNewIntent () и бум, прогресс.
Хотя я должен признать; выяснение этого облегчает разочарование от невозможности избежать звука Танцев со звездами , ревущего на заднем плане.