我想在“ activity1”正在执行一些代码(工作)时显示loadingActivity
,然后再显示activity1。但是,如果我不想再次启动activity1,请仅在doSomeStuff
结束时切换其布局。谢谢。
活动1
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent myIntent = new Intent(getApplicationContext(), loadingActivity.class);
startActivityForResult(myIntent, 0);
//Do some stuff while loadingActivity is showed
doSomeStuff()
//here I want to show again this activity and hide loading one
loadingActivity
public class loadingActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
setContentView(R.layout.loading);
}
最佳答案
为此,您应该使用ProgressDialog
,这将使您轻松显示加载指示器,完成工作后就可以轻松将其删除。下面的代码应该适合您。
显示对话框:
ProgressDialog dialog = new ProgressDialog(YourActivityClass.this);
dialog.setMessage("Loading Activity...");
dialog.show();
//Do your long running work here
关闭对话框:
dialog.dismiss();
如果要以其他方法显示和关闭对话框,可以将对话框设置为类级别的变量。
另外,如果长时间运行的工作没有在后台线程上进行,那么从查看代码的角度来看,您可能阻止了该活动的加载。如果不将工作卸载到后台线程,则无法在onCreate内部进行长时间运行的工作。为了在Android中轻松执行线程处理,您应该使用AsyncTask类。