我正在尝试在我的网络浏览器中添加新书签,书签已成功添加,但是,程序在添加书签后抛出异常,我解释说:
当调用Browser.saveBookmark时,我可以填写url和title值,然后选择“save”。该项目已成功添加到列表中。然后,该消息显示:“抱歉!应用程序浏览器(进程com.android.browser)已意外停止。请再试一次。”
这是我的源代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == MENU_ADD) {
Browser.saveBookmark(this, "New Bookmark", "http://");
return true;
} else
return false;
}
Logcat中的堆栈跟踪如下:
01-03 14:47:25.862: ERROR/AndroidRuntime(1720): FATAL EXCEPTION: Thread-11
01-03 14:47:25.862: ERROR/AndroidRuntime(1720): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
01-03 14:47:25.862: ERROR/AndroidRuntime(1720): at android.os.Handler.<init>(Handler.java:121)
01-03 14:47:25.862: ERROR/AndroidRuntime(1720): at android.webkit.WebIconDatabase$EventHandler.<init>(WebIconDatabase.java:46)
01-03 14:47:25.862: ERROR/AndroidRuntime(1720): at android.webkit.WebIconDatabase$EventHandler.<init>(WebIconDatabase.java:46)
01-03 14:47:25.862: ERROR/AndroidRuntime(1720): at android.webkit.WebIconDatabase.<init>(WebIconDatabase.java:43)
01-03 14:47:25.862: ERROR/AndroidRuntime(1720): at android.webkit.WebIconDatabase.getInstance(WebIconDatabase.java:293)
01-03 14:47:25.862: ERROR/AndroidRuntime(1720): at com.android.browser.Bookmarks.addBookmark(Bookmarks.java:136)
01-03 14:47:25.862: ERROR/AndroidRuntime(1720): at com.android.browser.AddBookmarkPage$SaveBookmarkRunnable.run(AddBookmarkPage.java:136)
01-03 14:47:25.862: ERROR/AndroidRuntime(1720): at java.lang.Thread.run(Thread.java:1096)
我已经尝试过这种方式添加书签(而不是Browser.saveBookmark):
Intent i = new Intent(Intent.ACTION_INSERT, android.provider.Browser.BOOKMARKS_URI);
i.putExtra("title", title);
i.putExtra("url", url);
this.startActivity(i);
但是,这给了我同样的错误!
那么,有关此错误的任何解决方法或任何其他添加书签的解决方案? 提前致谢
答案 0 :(得分:2)
编辑:
改变这个:
if (item.getItemId() == MENU_ADD) {
Browser.saveBookmark(this, "New Bookmark", "http://");
bookmarkAdapter.notifyDataSetChanged();
return true;
} else
return false;
}
有了这个
if (item.getItemId() == MENU_ADD) {
Intent i = new Intent(Intent.ACTION_INSERT, android.provider.Browser.BOOKMARKS_URI);
i.putExtra("title", title);
i.putExtra("url", url);
this.startActivity(i);
return true;
} else
return false;
}
并尝试一下。