android使用浮动搜索框的一些注意事项
搜索框和普通对话框一样,浮动在屏幕的最上方,它不会改变任何Activity堆栈状态,没有任何Activity生命周期中的方法会被调用,只是当搜索框出现就,正在运行的Activity会失去输入焦点。
弹出浮动搜索框的两种办法:
1。通过在程序中执行onSearchRequested()方法
2。在 onCreate()方法中调用setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL),这样,当用户按下键盘上的按键时,将会自动激活搜索框。
要给搜索框传递参数,我们需要重写onSearchRequested()方法,然后再执行搜索的activity中取得传递过来的参数。
如果当前的Activity就是响应搜索请求的Activity时,会有以下两种情况:
默认情况下,ACTION_SEARCH Intent将会创建一个新的Activity,并调用onCreate()方法,这个新的Activity会显示在最前面,你将同时有两个 Activity实例。当你按“返回”键里,会回到没有执行搜索前的一个Activity。
另一种情况是配置了android:launchMode=”singleTop”的Activity,这时,我们需要 在 onNewIntent(Intent)方法中处理搜索请求
关于singleTop,可以参考下面的链接:
http://android.group.iteye.com/group/blog/718835
讲述了Activity的四种加载模式。