我有一个活动'Activity1'和另一个名为'Activity2'的活动.单击"Activity1"中的按钮后会加载"Activity2".我想显示进度对话框,直到加载新活动.你能告诉我这样做的代码吗?
有两种方法可以
第一种方法使用异步任务
如果您正在执行繁重的任务,例如从服务器加载数据或解析 xml,在这种情况下使用AsynTask<> 如果您想从 ActivityA 调用 ActivityB 那么
*步骤1 *创建一个AsyncTask 类。在方法内写入所有后台任务,任务完成后,您要调用代码在后执行方法doBackground()内写入的活动onPostExecute()
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.view.View;
public class LoadingDataFromServer extends AsyncTask {
Context currentContext = null;
boolean isCancelled = false;
public LoadingDataFromServer(Context context) {
currentContext = context;
}
@Override
protected void onPreExecute() {
if (DashboardActivity.progressBarLayout != null) {
DashboardActivity.progressBarLayout.setVisibility(View.VISIBLE);
// Log.i(TAG,".....Now make progress bar visible.....");
}
super.onPreExecute();
}
@Override
protected Object doInBackground(Object... params) {
// do background processing
try {
// do background tasks eg sever communication
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Object result) {
// TODO Auto-generated method stub
// progressDialog.dismiss();
// call second Activity
Intent i = new Intent(currentContext, com.ActvityB.class);
super.onPostExecute(result);
}
@Override
protected void onCancelled() {
// TODO Auto-generated method stub
isCancelled = true;
super.onCancelled();
}
}
Run Code Online (Sandbox Code Playgroud)
步骤2在要跳转到新活动的活动中(例如在ActivityA中)调用AsynTask的execute()
new LoadingDataFromServer(context).execute(null);
Run Code Online (Sandbox Code Playgroud)
第二种方法
或者
| 归档时间: |
|
| 查看次数: |
5960 次 |
| 最近记录: |