Android: forward search queries to one single activity that handles search

Posted by Stefan Klumpp on Stack Overflow See other posts from Stack Overflow or by Stefan Klumpp
Published on 2009-12-15T11:59:37Z Indexed on 2010/03/31 11:53 UTC
Read the original article Hit count: 391

Filed under:
|
|

I have an activity handling search (ACTIVITY_1), which works perfectly when I use the search (via SEARCH button on the phone) within/from this activity.

However, when I use search from another activity (ACTIVITY_2..x) by implementing onNewIntent and forward the query string to my Search_Activity.class (ACTIVITY_1)

@Override
protected void onNewIntent(Intent intent) {
    Log.i(TAG, "onNewIntent()");

    if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
    	Log.i(TAG, "===== Intent: ACTION_SEARCH =====");
    	Intent myIntent = new Intent(getBaseContext(), Search_Activity.class);
    	myIntent.setAction(Intent.ACTION_SEARCH);
    	myIntent.putExtra(SearchManager.QUERY, intent.getStringExtra(SearchManager.QUERY));
    	startActivity(myIntent);
    }

}

it always pauses ACTIVITY_2 first and then goes to onCreate() of ACTIVITY_2.

  • Why does it recreate my ACTIVITY_2 when it is already there and doesn't go to onNewIntent directly?
  • Is there another way I can forward search queries directly to ACTIVITY_1? For example via a setting in the Manifest.xml
  • Is it possible to generally forward all search queries automatically to ACTIVITY_1 without even implementing onNewIntent in all the other activities?

Currently I have to put an <intent-filter> in every single activity to "activate" my custom search there and forward the query then to the activity that handles search via the onNewIntent (as shown above).

<activity android:name=".Another_Activity"
    android:theme="@style/MyTheme">
    <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>

© Stack Overflow or respective owner

Related posts about android

Related posts about search