我想在“ 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类。

10-07 13:43