从不同的线程开始下一个活动时Android应用程序崩溃

时间:2016-03-02 05:02:29

标签: android multithreading

我正在尝试处理一些数据库操作,之后想要启动一个新活动。同时,我想要显示进度条。

我在下面编写的代码在android studio以及某些设备上工作正常,但在某些设备上,应用程序在从线程启动新活动时崩溃了。请帮帮我。

提前致谢。

    progress=new ProgressDialog(this);
    progress.setMessage("Prepairing relations...");
    progress.setProgress(0);
    progress.setCancelable(false);
    progress.show();

    final Thread t1 = new Thread() {
        @Override
        public void run() {
            sql.updateRelations();   // db operations

            Intent intent = new Intent(context, MainActivity.class);
            progress.dismiss();
            startActivity(intent);
            finish();
        }
    };
    t1.start();

2 个答案:

答案 0 :(得分:1)

使用处理程序

从主线程开始新活动
Handler handler = new Handler(Looper.getMainLooper());

答案 1 :(得分:1)

试试这段代码: -

progress=new ProgressDialog(this);
progress.setMessage("Prepairing relations..."); 
progress.setProgress(0); 
progress.setCancelable(false); 
progress.show(); 

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    @Override
    public void run() {
        sql.updateRelations();   // db operations 
        Intent intent = new Intent(NameActivity.this, MainActivity.class);
        progress.dismiss(); 
        startActivity(intent);
        finish();
    }
}, 15000);