java - 我如何知道后台线程何时完成 AsyncTask?
问题描述
我使用带有背景线程的字符串获取人员的姓名和电话号码,并在某处使用它们。一切正常,但我想做点什么。当这个线程用完时,我想向用户展示一些东西。但我不知道如何检查这个线程的状况。如果您提供帮助,我将不胜感激。提前致谢。
cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null,null,
ContactsContract.Contacts.DISPLAY_NAME + " ASC");
AsyncTask.execute(new Runnable() {
@Override
public void run() {
while (cursor.moveToNext()){
String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phoneNumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)).trim();
}
cursor.close();
}
});
}
解决方案
我想这就是你的意思
final TextView textView1 = findViewById(R.id.sample_text);
final Handler uiHandler = new Handler(Looper.getMainLooper());
AsyncTask.execute(new Runnable() {
@Override
public void run() {
//... your work
uiHandler.post(new Runnable() {
@Override
public void run() {
textView1.setText("finish");
}
});
}
});
推荐阅读
- ios - 如何将搜索栏集中在 barbutton 点击上?
- javascript - 具有动态属性的假对象
- android - 如何在没有 onPostCreate() 的情况下实现 onSavedInstanceState()?
- javascript - 我想知道是否可以在没有 if 语句的情况下比较两个数组项
- c++ - 无法用crfsuite的C++ API编译一个非常简单的Tagger示例
- spring-boot - Spring Boot + Cucumber 在主范围内。我可以自动装配步骤定义吗?
- typescript - IDEA 和 TypeScript 导入
- javascript - 为什么我不能将数组连接到过滤器的结果?
- ios - MicrosoftMaps,如何使用 Bing 地图框架在 Appstore 上上传应用程序时解决“意外的 CFBundleExecutable Key”错误
- tensorflow - 如何将损失降到最低?