如何在重新启动活动后检查线程是否处于活动状态?

问题描述 投票:0回答:1

我正在线程上执行繁重的操作,该操作在单击按钮时调用。为了防止用户再次单击该按钮,我只是在检查thread.isAlive()是否正确,只要我在当前活动中就可以正常运行。当我按下backpress并再次进入此活动时,thread.isAlive()返回false并再次开始执行该强化功能,因为我正在onCreate中创建新线程。我该如何解决?我的代码在

 Thread thread;
     @Override
           protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_backup_restore);
           Backup backupobj= new Backup();
            thread= new Thread (new BackupThread(backupobj));

                  button.setOnClickListener(v -> { 
                  if(posts.size()>0) {

                 if (!thread.isAlive()) {
                   thread.start();

                 }
                 else {
                     Toast toast = Toast.makeText(getApplicationContext(), "Backup in Progress" , 
                     Toast.LENGTH_LONG);
                     toast.show();

                 }

         }
     });}

BackupThread类

class BackupThread extends Thread {
BackupRestore.Backup backup;

BackupThread(BackupRestore.Backup obj)
{
    this.backup=obj;
}


@Override
public void run() {

    backup.overallbackup();
    backup.dbbackup();
    backup.deletetempfolder();

}
android java-threads android-threading
1个回答
0
投票

准确地说,

Thread.isAlive()如果线程已启动(可能尚未运行)但尚未完成其运行方法,则返回true。

Thread.getState()

返回线程的确切状态。
© www.soinside.com 2019 - 2024. All rights reserved.