Ana*_*Ana 5 android android-asynctask asynctaskloader android-studio
在我的旧项目中,我使用了 AsyncTask,但它已被弃用,那么我使用什么方法来代替这个呢?如果我们使用线程,则在 AsyncTask 中具有 onbackground、onPreExecute 和 onPostExecute Override 方法,其中本节在线程中调用。有没有什么替代方法。你能给我解决方案吗?
Java代码:
public class getDetailsfromWeb extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
if (paymentSync == null)
paymentSync = new ReceivePaymentSync(getActivity());
allCreditCardModel = new AllCreditCardModel();
allCreditCardModel = paymentSync.getGetCreditCardById(CrediCardId);
handler.post(allCreditRunnable);
return null;
}
/**
* @param string
*/
public void execute(String string) {
// TODO Auto-generated method stub
}
protected void onPreExecute() {
showProgress();
}
@Override
protected void onPostExecute(String result) {
progress.dismiss();
}
}
Run Code Online (Sandbox Code Playgroud)
只需使用一个线程。
onPreExecute 代码位于构造函数中。
doInBackground 代码位于 run() 中。
onPostExecute 代码进入 runOnUiThread 的可运行对象的运行中,您可以在 run() 结束时调用该可运行对象。
这是一个简单的例子,无论如何我也会看看 WorkManager 库:
Executors.newSingleThreadExecutor().execute(() -> {
Handler mainHandler = new Handler(Looper.getMainLooper());
//sync calculations
mainHandler.post(() -> {
//Update UI
});
//other sync calcs.
mainHandler.post(() -> {
//Update UI
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14885 次 |
| 最近记录: |