我在我的主singleTop
中使用Activity
模式。我正在使用SearchWidget
这对我的MainAcivity
来说很明显:
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:launchMode="singleTop" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
onNewIntent
被调用两次:
protected void onNewIntent(Intent intent) {
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
// here is my code
}
}
为什么会这样?
答案 0 :(得分:5)
您是否使用硬件键盘执行搜索?如果是,则双重执行是已知但从未修复的Android错误。
您可能希望尝试使用整数锁定变量来避免重复执行。
我的Android 4.2.2设备存在同样的问题。在Android Emulator中观察到类似的行为。