MainActivity.java:
private class NetCheck extends AsyncTask<String, Void, Boolean> {
@Override
protected Boolean doInBackground(String... args) {
return cd.isConnectingToInternet();
}
protected void onPostExecute(Boolean th) {
if (th == true) {
new RemoteLoader(MainActivity.this).execute();
}
}
}
RemoteLoader.java:
public class RemoteLoader extends AsyncTask<Void, Void, Void>{
private View view;
public RemoteLoader(View context){
this.view = view;
}
@Override
protected Void doInBackground(Void... Pages) {
// do in bg
}
@Override
protected void onPostExecute(Void result) {
// Set title into TextView
TextView txttitle = (TextView) view.findViewById(R.id.txtProtip);
txttitle.setText(protip);
}
}
我正在尝试从 MainActivity
执行 RemoteLoader
类。但是在 RemoteLoader 中包含一些需要膨胀 Main 布局的东西。
在这种情况下,如何将布局从 MainActivity 传递到 RemoteLoader?
最佳答案
问题在于,例如,加载过程中方向发生变化, Activity 将重新创建, View 将不再有效。您冒着泄露 Activity 的风险。此外,您尝试写入的 View 将不再是可见的。
查看 Robospice 文档以了解基本问题: https://github.com/octo-online/robospice/wiki/Understand-the-basics-of-RoboSpice-in-30-seconds 这是 Android 中比较棘手的部分之一。
关于java - Android - 将 View 从 Activity 传递到 AsyncTask 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20795953/