art*_*ire 3 android activity-lifecycle android-activity
当我打开我的应用程序时,会启动一个Activity,并且在其onCreate方法中我正在检查某些条件.如果条件为真,我完成当前活动并打开另一个活动.问题是:第一个活动在屏幕上闪烁,然后第二个活动打开.代码如下:
public class FirstActivity extends Activity {
@Override
protected final void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//some code here...
checkSomeStuff();
setContentView(R.layout.my_layout);
//some code here...
}
private void checkSomeStuff() {
if (/*some condition*/) {
final Intent intent = new Intent(this, SecondActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
finish();
startActivity(intent);
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,setContentView()在检查之后,但在第二个活动开始之前,第一个活动仍然在屏幕上闪烁.有谁知道怎么让它不眨眼?
提前致谢.
finish()的目的是销毁当前活动并将其从后堆栈中删除.通过调用完成然后触发意图,你要求活动自我销毁(我假设眨眼是它试图恢复)然后将意图发射到第二个.在startActivity()之后移动完成
@Override
protected final void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//some code here...
if(checkSomeStuff()) {
setContentView(R.layout.my_layout);
//some code here...
}
}
private boolean checkSomeStuff() {
if (/*some condition*/) {
final Intent intent = new Intent(this, SecondActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5228 次 |
| 最近记录: |