我正在尝试使用方法(从doInBackground()
方法调用Asynctask
)删除浏览器历史记录。
Browser.clearHistory(getContentResolver());
Browser.clearSearches(getContentResolver());
但是这些方法给出了一个错误,您不能从非 ui 线程调用这些方法。
如果有人遇到过这样的问题,请提出答案。
我正在尝试使用方法(从doInBackground()
方法调用Asynctask
)删除浏览器历史记录。
Browser.clearHistory(getContentResolver());
Browser.clearSearches(getContentResolver());
但是这些方法给出了一个错误,您不能从非 ui 线程调用这些方法。
如果有人遇到过这样的问题,请提出答案。
如果要从非 UI 线程更新 UI,可以使用该runOnUiThread
方法。
在您的情况下,您可以使用以下代码段:
runOnUiThread(new Runnable(){
public void run(){
Browser.clearHistory(getContentResolver());
Browser.clearSearches(getContentResolver());
}
});
为此,您必须使用处理程序才能从非 UI 线程更新您的浏览器。这是 Lars Vogel 的一篇好文章,描述了如何做到这一点