我是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>
答案 0 :(得分:2)
Intent intent = new Intent(LoginActivity.this, HomeActivity.class);
startActivity(intent);
finish();
到达HomeActivity.java
后, 完成()会破坏您的登录活动
而且你不会再次到达LoginActivity
。
答案 1 :(得分:0)
试试这个..
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;
}
}
答案 2 :(得分:0)
在第二个Activity上覆盖你的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();
}
答案 3 :(得分:0)