0

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

4 回答 4

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();
        }
    });
}

我的免责声明视图有一个关闭它的完成按钮。

希望这可以帮助!

于 2013-07-07T13:25:31.617 回答
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);
        }
于 2013-07-07T13:34:04.123 回答
0

呼叫第二个活动后呼叫结束,因此当第二个屏幕出现时,前一个屏幕将被删除。

startActivity(intent)

于 2013-07-07T17:15:28.217 回答
0

实现这一点的最好和最简单的方法是覆盖 onPause() 方法并调用:

finish();

在第一个活动里面!

于 2013-07-07T17:19:59.047 回答