强制关闭在浏览器中添加新书签

时间:2012-01-03 20:06:37

标签: android

我正在尝试在我的网络浏览器中添加新书签,书签已成功添加,但是,程序在添加书签后抛出异常,我解释说:

当调用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);

但是,这给了我同样的错误!

那么,有关此错误的任何解决方法或任何其他添加书签的解决方案? 提前致谢

1 个答案:

答案 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;
} 

并尝试一下。