关闭Android中以前的活动

关闭Android中以前的活动,android,android-activity,onbackpressed,Android,Android Activity,Onbackpressed,我是android新手,正在尽我最大的努力 我有一份有三项活动的申请, 1登录页面 2.主页 3.注册页 加载的第一个活动是登录 当用户给出正确的用户名和密码时,我允许进入主页 在这里,我面临一个问题,当我点击后退按钮时,我将再次进入登录屏幕,应用程序应该不会关闭 在创建意图和加载主活动时,我也在使用finish() 我尝试了onBackPressed()方法,但它对我不起作用 public void onBackPressed() { // Hom

我是android新手,正在尽我最大的努力

我有一份有三项活动的申请, 1登录页面 2.主页 3.注册页

加载的第一个活动是登录 当用户给出正确的用户名和密码时,我允许进入主页 在这里,我面临一个问题,当我点击后退按钮时,我将再次进入登录屏幕,应用程序应该不会关闭

在创建意图和加载主活动时,我也在使用finish()

我尝试了onBackPressed()方法,但它对我不起作用

    public void onBackPressed() {
              //      HomeActivity.this.finish();
                      super.onBackPressed();
      }
我的清单文件是

        <?xml version="1.0" encoding="utf-8"?>
        <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.Example.MyProject">
        <application
        android:name=".MyApplication"
        android:allowBackup="true"
        android:hardwareAccelerated="false"
        android:icon="@drawable/abc"
        android:label="@string/app_name_display"
        android:supportsRtl="true"
        android:largeHeap="true"
       android:manageSpaceActivity=".LoginActivity"
       android:theme="@style/AppTheme">
       <activity android:name=".LoginActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <service android:name=".SyncData" >
    </service>
    <activity android:name=".HomeActivity"
        android:screenOrientation="portrait"/>
       <activity android:name=".Registration"  />
       </application>

      </manifest>

试试这个

 private Boolean exit = false;

   @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        if (exit) {
            Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.addCategory(Intent.CATEGORY_HOME);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
            startActivity(intent);
            finish();
        } else {
            Toast.makeText(this, "Tap again to exit.", Toast.LENGTH_SHORT)
                    .show();
            exit = true;

    }
}
finish()
您将无法再次访问
LoginActivity

只需在第二个活动中覆盖您的onBackPressed,而不调用

super.onBackPressed();
例如,如下所示覆盖onBackPressed:

@Override
public void onBackPressed() {
//Do something else here, maybe prompt the user if he needs to exit the app.
finishAffinity();;//If you want to close the application.
}
我想添加类似这样的内容,以便于用户使用

@Override
public void onBackPressed() {
android.support.v7.app.AlertDialog.Builder alertDialogBuilder = new android.support.v7.app.AlertDialog.Builder(this);
        alertDialogBuilder.setMessage("Do you wish to exit the app?");

        alertDialogBuilder.setPositiveButton("No", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int arg1) {
                dialog.dismiss();
            }
        });

        alertDialogBuilder.setNegativeButton("Yes", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                finishAffinity();
            }
        });

        android.support.v7.app.AlertDialog alertDialog = alertDialogBuilder.create();
        alertDialog.show();
    }
另一个用户被咬了

如果软件开发人员花在解决这个问题上的每一小时我都有一美元,我就不必再工作了


谷歌:修复它

startActivity(新意图(上下文、HomeActivity.class));完成()@A.Nitesh在您的
onBackPressed
中不使用此选项,而是在您将用户重定向到
HomeActivity
时使用此选项。是的,当我开始新活动时,我将在onBackPressed()方法中关闭旧活动buy calling finish(),我只使用super.onBackPressed()@Sandiskp然后如何在不使用Backpress的情况下处理此问题在正常情况下其工作正常,但在我的分配中有一些场景,例如,在注销时,我询问他们是否要注销(是/否)如果用户单击“是”,则当我按下“后退”按钮时,将在此处处理注销agian将进入主屏幕如果我们喜欢此“后退”按钮本身将不起作用这不是我的要求Nitesh,正如我从问题中了解到的,后退不应起作用。不,不,后退按钮不应引导我们进行登录活动,考虑一个例子,如脸谱网,如果我们登录一次,应用程序将打开,同时关闭应用程序,它不会导致登录页面Nai AM不关心警报消息和它们的功能性,这里的主要问题是后退,我要到以前的活动,不应该发生。为了让你明白,我要告诉你一件事。注销后,当我按下后退按钮时,它将启动主页活动当您从
Login
启动
home
时,您是否也调用
finish()
?如果是这样,在
Login
中按BACK键不应返回
主页
。请将您的清单添加到我正在呼叫的问题中,但在注销后,当我按下后退按钮时,它正在加载主屏幕,这不是标准的Android行为。你可能会看到这个讨厌的Android错误:请强制停止你的应用程序,然后从主屏幕再次启动它。然后登录并按“上一步”按钮,查看您的
HomeActivity
是否仍然显示。@DavidWasser,您是对的,谢谢您的帮助链接。对此,我深表歉意。很多人都被这种错误所困扰:-(
@Override
public void onBackPressed() {
android.support.v7.app.AlertDialog.Builder alertDialogBuilder = new android.support.v7.app.AlertDialog.Builder(this);
        alertDialogBuilder.setMessage("Do you wish to exit the app?");

        alertDialogBuilder.setPositiveButton("No", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int arg1) {
                dialog.dismiss();
            }
        });

        alertDialogBuilder.setNegativeButton("Yes", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                finishAffinity();
            }
        });

        android.support.v7.app.AlertDialog alertDialog = alertDialogBuilder.create();
        alertDialog.show();
    }