fah*_*hmy 0 java android synchronized android-asynctask
在这里第一次发布问题.刚开始编程和编码我的第一个应用程序
我有一个Application类文件,其方法为fetchUpdates():
public synchronized void fetchUpdates() {
String[] mURLs = getURLs();
new DownloadJSONData().execute(mURLs[0], mURLs[1]);
}
Run Code Online (Sandbox Code Playgroud)
DownloadJSONData是asyncTask从服务器获取更新,该onPostExecute方法使用服务器中的JSON数组更新sqlite数据库.
应用程序的不同组件(小部件和活动)调用此方法以从服务器获取更新以更新数据库.
问题:synchronized方法是否在与UI线程不同的线程上运行?如果是这样,DownloadJSONData将同步fetchUpdates()方法中的代码移动到右边应该没有问题吗?如果在连接服务器或从服务器下载数据时存在滞留,它不应该阻止UI线程吗?
动机:我正在尝试更改fetchUpdates()方法以返回指示数据库是否已更新的布尔值.然而,因为它现在是(我认为)fetchUpdates()方法之前完成asyncTask的onPostExecute方法,因此,fetchUpdates()方法不能指明呼叫是否DownloadJSONData()更新数据库.fetchUpdates()如果在调用后更新数据库,我需要调用方法的应用程序组件以不同的方式运行.
PS因为我刚接触编程简单而详细的解释会非常有用.
谢谢!
| 归档时间: |
|
| 查看次数: |
1511 次 |
| 最近记录: |