我的主要应用程序执行此操作:它从互联网上检索数据并有3个按钮,当OnClicked时,我将去其他3个屏幕。因为数据加载可能有点慢,我想使用异步任务。这是我的asynctask示例代码。
class LoginProgressTask extends AsyncTask {
@Override
protected Boolean doInBackground(String... params) {
try {
Thread.sleep(4000); // Do your real work here
} catch (InterruptedException e) {
e.printStackTrace();
}
return Boolean.TRUE; // Return your real result here
}
@Override
protected void onPreExecute() {
showDialog(AUTHORIZING_DIALOG);
}
@Override
protected void onPostExecute(Boolean result) {
// result is the value returned from doInBackground
removeDialog(AUTHORIZING_DIALOG);
}
}
这是我的主要活动样本:
public class MainScreen extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MainTheme();
}
public void MainTheme(){
retrieve_data(); //function for getting the data
... action with the buttons, onClicks Listener
}
}
我的问题是如何在One活动中混合使用这些代码才能使其正常工作,因为我还没有理解AsyncTask。或者我应该在doInBackground中返回什么?
答案 0 :(得分:1)
我是从>>中学到的AsynTask链接。也许它对你有帮助,首先阅读整个例子然后开始在你的代码上应用它。
答案 1 :(得分:0)
您可以使用Service
代替AsyncTask
。 This会帮助你。
答案 2 :(得分:0)
例如,如果您要登录Button
,则应该执行以下操作:
Button button; //Here button to go other sreen
public void onCreate(){
//some business code here
//notice: you have declare you button to your layout. I don't post it, but maybe you know how to
button.setOnClickListener(new OnClickListener){
@Override
public void onClick(View view){
LoginProcessTask loginTask = new LoginProcessTask(this);
login.excute(data of param1);
}
}
}
你应该注意到,在你的LoginProcessTask
中,你错误地扩展了它。它必须(仅举例):
class LoginProgressTask extends AsyncTask<String, Integer, Integer>{ ......}