Я выполняю тяжелую операцию в потоке, которая вызывается при нажатии кнопки. Чтобы предотвратить повторное нажатие этой кнопки пользователем, я просто проверяю, есть ли 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();
}