在Android中仅显示一次启动屏幕

时间:2013-07-07 13:09:46

标签: android android-activity show launcher

我想只在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;

4 个答案:

答案 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();

在第一个活动中!