Если FirstActivity
является корнем задачи, и он заканчивается и запускает SecondActivity
, то вызов isTaskRoot()
в SecondActivity
немедленно возвращает false
, потому что завершение FirstActivity
происходит асинхронно и, следовательно, еще не сделано. Ожидание секунды, а затем вызов isTaskRoot()
возвращает true.
public class FirstActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
finish();
startActivity(new Intent(this, SecondActivity.class));
}
}
public class SecondActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
protected void onResume() {
super.onResume();
((TextView)findViewById(R.id.tv1))
.setText("isTaskRoot() in onResume(): " + isTaskRoot());
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
((TextView)findViewById(R.id.tv2))
.setText("isTaskRoot() after 1s: " + isTaskRoot());
}
}, 1000);
}
}
Есть ли способ & hellip;
-
(оптимально) узнайте, будет ли в конечном итоге это будет задача root, или
-
(лучше, чем ничего) получить какое-то уведомление/обратный вызов после того, как задача находится в "конечном" состоянии, и, таким образом,
isTaskRoot()
вернет "правду"?