AsyncTask在结束doInBackground之前检查MainActivity是否设置了变量

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

我想在从其创建的AsyncTask在后台运行时在MainActivity中检查一个变量,然后在将该变量设置为某个值(例如,设为true时结束AsyncTask;

MainActivity

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        new MyTask(this).execute();
    }

MyTask


public class MyTask extends AsyncTask<Void, Void, Void>
{
    @Override
    protected Void doInBackground(Void... ignore)
    {
      //check for MainActivity variable then exit or PostExecute when this variable is set to true?
    }

}
java android android-asynctask
1个回答
0
投票
假设Android在这方面类似于普通的Java线程和可运行对象,我假设您可以只在主线程(MainActivity.java)中创建一个原子变量,然后在AsyncTask中对其进行检查。

e.x。

private AtomicInteger myInt = new AtomicInteger(whatever value you need); public int getMyInt() { return myInt.get(); }

然后只是获取值并使用它来做您想要的。您还可以编写修改它的方法或其他任何您想做的事情。https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html

否则,如果需要传递对象,则必须研究同步,您可以在Googling上找到一些不错的文章。

© www.soinside.com 2019 - 2024. All rights reserved.