Ich habe die Dokumentation SearchManager verfolgt, habe aber immer noch Probleme, eine der Aktivitäten meiner App durchsuchbar zu machen. Aus meiner Tätigkeit, erscheint das Dialogfeld Suchen, gibt Sie mir eine Abfrage, auf Suchen, meine Tätigkeit wieder öffnet, dann sehe ich dies im Protokoll:Warum ist Intent.getAction() meiner durchsuchbaren Aktivität null?
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
Es scheint mir, dass alles in Ordnung ist, bis die letzten drei Zeilen nach oben . Die "NI" -Linien sind getIntent().toString(), getIntent().getAction()
bzw. getIntent().hasExtra(SearchManager.QUERY)
.
ActivityManager scheint meine Aktivität mit der richtigen Aktion zu starten. Wenn meine Aktivität startet, enthält sie keine Aktion !? Was mache ich falsch?
Der relevante Teil meines manifest ist:
<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>
Ich bin froh, dass ich diese Frage SO gefunden habe, bevor auch mein Kopf explodierte. Dies wird im Leitfaden zu den Anwendungsgrundlagen erwähnt, aber es wäre schön, onNewIntent in [Intent # FLAG_ACTIVITY_SINGLE_TOP] (http://j.mp/gkTnyw) zu erwähnen und nicht nur in [Intent # FLAG_ACTIVITY_CLEAR_TOP] (http://j.mp/fNlEM3). Außerdem erwähnt die Dokumentation zu [activity # getIntent] (http://j.mp/ftcS6p) gar nichts !!! Ugh ... Das sagte, danke. – brack
Also wäre es vielleicht eine gute Übung, immer onNewIntent (getIntent()) von onCreate aufzurufen, nur damit Sie wissen, dass es dem gleichen Code-Pfad folgt. – mclin
Ihr Problem wird hier erklärt http://developer.android.com/guide/topics/search/search-dialog.html#LifeCycle, aber auch nach dem Anwenden dieser, bekomme ich immer noch null ... – max4ever