我想只在Android应用中显示一次启动画面。然后,如果用户在第二个屏幕上,如果他按下后退按钮,我希望应用程序关闭。这段代码有什么问题?第一个屏幕再次显示,不能是什么。
public class MainActivity extends Activity {
private boolean firstscreenshown=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
if (firstscreenshown==true) finish();
firstscreenshown=true;
或
public class MainActivity extends Activity {
private boolean firstscreenshown;
public MainActivity() {
this.firstscreenshown = false;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
if (firstscreenshown==true) finish();
firstscreenshown=true;
答案 0 :(得分:0)
我有一个免责声明视图,我第一次运行我的应用时显示。以下是我处理它的方法:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// check preferences to see if disclaimer has been display
boolean showDisclaimer = getPreferences(MODE_PRIVATE).getBoolean("disclaimer", true);
if (showDisclaimer) {
// turn off the disclaimer
getPreferences(MODE_PRIVATE).edit().putBoolean("disclaimer",false).commit();
// display the disclaimer
Intent intent = new Intent(MainActivity.this, LegalActivity.class);
startActivity(intent);
}
setContentView(R.layout.activity_main);
}
以下是免责声明的活动:
public class LegalActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.legal_detail);
// Watch for guide button clicks.
Button button = (Button) this.findViewById(R.id.legal_button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
finish();
}
});
}
我的免责声明视图有一个关闭它的完成按钮。
希望这有帮助!
答案 1 :(得分:0)
在MainActivity类中使用此代码处理后退按钮:
@Override
public void onBackPressed()
{
// TODO Auto-generated method stub
super.onBackPressed();
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
}
答案 2 :(得分:0)
在您拨打第二个活动后呼叫完成,因此当第二个屏幕出现时,前一个屏幕将被删除。
startActivity(intent)
答案 3 :(得分:0)
实现此目的的最佳和最简单的方法是覆盖onPause()方法并调用:
finish();
在第一个活动中!