Android活动可以自行调用吗?

问题描述:

当创建一个新的Intent来开始一个新的活动时,活动是否有可能自行调用,这是一种很好的编程技巧。例如,假设我有一个活动模板,并且为了避免进行10个不同的活动,自己拥有相同的活动调用会很方便吗?Android活动可以自行调用吗?

+0

雅可以做 – Giridharan

+0

是的,你可以但这不是好技术... –

+0

@CapDroid是有原因的吗? –

是的。如果你的要求是这样的话,那么这样做不会有什么坏处。如果你使用这个,那么不要忘记调用finish()。 finish()将从backstack中移除活动,所以当你按下时不要返回到同一活动的前一个实例。

startActivity(new Intent(MyClass.this,MyClass.class)); 
finish(); 
+0

它只是正常的类和它的使用是一样的:) – user3455363

+0

@ user3455363是的,但想想后退按钮。我很担心,如果用户按下后退按钮,它将只是重新加载相同的活动 – user3774329

+0

@ user3455363这种情况下不打电话完成() –

是可以做到这一点,但你应该考虑onBackPressed()的行为,你不希望同样的活动都会从您的堆栈,当用户一直压回。 你可以使用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);以确保只有一个实例是由相同的活动创建的。

+0

有趣的。所以用这种方法,用户可以按下后退按钮,当你调用 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)时,它将回到活动 – user3774329

+1

的先前版本; 它只会检查堆栈中是否有相同的活动,然后完成并开始新的活动。所以你总是有单独的活动 – vivek