Давайте сделаем то, что вы хотите сделать безопасным способом, используя простую логику interface
:
Итак, мы добавили наш простой interface
и мы переопределим ваш MyAsnycTask
класс constructor
какитак:
public class MyAsnycTask extends AsyncTask
{
OnTaskFinished listener;
// Our simple interface
public interface OnTaskFinished {
void TimeToNextActivity();
}
// Your MyAsnycTask class constructor
public MyAsnycTask(OnTaskFinished l) {
listener = l;
}
. . .
Как последняя строка кода в onPostExecute()
, мы сделали все, что делаем. Так скажите это через наш listener
:
listener.TimeToNextActivity();
Чтобы использовать наш interface
, который мы добавили ранее, ваш Activity
должен implements
. Таким образом, мы реализуем это. И в реализованном методе мы переходим к следующему Activity
с Intent
:
public class MyActivity extends Activity
implements MyAsnycTask.OnTaskFinished
{
@Override
public void TimeToNextActivity()
{
// Here go to next activity
Intent i = new Intent(this, MainActivity.class);
startActivity(i);
}
Когда мы изменили constructor
нашего MyAsnycTask
класса, мы должны инициализировать его следующим образом:
MyAsnycTask process = new MyAsnycTask(this);
process.execute();