Android 搜索小部件调用Wintent两次

Android 搜索小部件调用Wintent两次,android,xamarin.android,android-search,Android,Xamarin.android,Android Search,我有一个要搜索的活动。当我单击搜索时,事件OnNewIntent会被调用两次。。。我做错了什么 我正在像这样创建Searchview public override bool OnCreateOptionsMenu(IMenu menu) { searchView = new SearchView(this); var searchManager = (SearchManager)GetSystemService(Context.SearchService); var

我有一个要搜索的活动。当我单击搜索时,事件
OnNewIntent
会被调用两次。。。我做错了什么

我正在像这样创建Searchview

public override bool OnCreateOptionsMenu(IMenu menu) 
{

    searchView = new SearchView(this);
    var searchManager = (SearchManager)GetSystemService(Context.SearchService);
    var searchableInfo = searchManager.GetSearchableInfo(ComponentName);

    searchView.SetSearchableInfo(searchableInfo);
    var search_item = menu.Add(new Java.Lang.String("Search"));
    search_item.SetActionView(searchView);
    search_item.SetShowAsAction(ShowAsAction.IfRoom);        

    var edit = menu.Add(0, insertItemID, 0, "Insert");
    edit.SetShowAsAction(ShowAsAction.IfRoom);
    edit.SetIcon(Android.Resource.Drawable.IcMenuAdd);

    return base.OnCreateOptionsMenu(menu); 
}
日志:


你为什么不试试这样的

该项目的示例应用程序如下

您可以在这里阅读项目规范


我在DatePickerDialog上也遇到了类似的问题……这似乎是一个api错误。它适用于android 2.2,但不适用于android 4.0+。我的解决办法是:

int timesCalled = 0;
public void yourMethod(){
    timesCalled += 1;
    if ((timesCalled % 2) == 0) {
       //do your stuff here
    }
}

这不是最清晰的解决方案,但对我来说很有效。希望这能有所帮助。

我假设您已将搜索活动设置为单顶,并在处理搜索意图之前将其设置为onNewIntent调用setIntent。如果是这样的话,那就是使用模拟器硬件键盘时SearchView中的一个bug

您可以在模拟器中禁用硬件键盘,方法是转到设置->语言和输入,然后单击默认值


如果使用软键盘,您应该只看到一次。

搜索onClick方法在哪里?请发布它也可能不相关,但您应该从OnCreateOptions菜单返回true。您找到解决方案了吗?我也面临同样的问题?c1rus,droidster,你能告诉我你是在什么设备上发现这个问题的吗?我只能在Genymotion emulator上重现它,但不能在任何其他设备(S3、S4、运行4.0.4的Galaxy Nexus、运行4.3的Nexus 7)上重现它发生在PhysiscalNexus上的Genymotion虚拟设备上从未发生过此错误。另外,好的提示是在该方法中放入一些日志,以确保一切正常。如何在genymotion emulator中启用软键盘?仍在发生。非常感谢<代码>(timesCalled%2)意味着它应该被调用偶数次,如果它被调用偶数次,你想做你的事情吗?
int timesCalled = 0;
public void yourMethod(){
    timesCalled += 1;
    if ((timesCalled % 2) == 0) {
       //do your stuff here
    }
}