我在Android应用程序有3个活动。 当我在每个活动按后退按钮的应用程序将退出。 使用下面的代码。
当我按下回从第三个活动,在应用程序退出罚款,但是当我通过点击应用程序图标重新启动应用程序,那么第三个活动将再次启动。 但我需要在这样的“重新开张”的时候启动我的主要活动。
我试着写上“的onResume”,但不工作的代码。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
}
请帮我。 提前致谢
您可以通过以下方式你的第三个Activity类放下面的代码解决这个问题,
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
startActivity(new Intent(getBaseContext(), YourSecondActivity.class));
finish();
}
相同的方式,可以把第二个活动课
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
startActivity(new Intent(getBaseContext(), YourFirstActivity.class));
finish();
}
最后,你可以把这个在你的主类
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
finish();
}
如果你想退出在所有3个活动,则必须关闭当前使用活动finish()
而开始一个新的活动。
moveTaskToBack()
移动包含该活动的活动堆栈背面的任务。
这样做在OnBackpressed()
并使用finish()
在所有的活动。 (因为你说你要完成所有的活动,当您按下后退键)
public void OnBackpressed()
{
finish();
}
而简单地说,在你的代码这样做:
在activity 1
Intent intent=new Intent(activity1.this,activity2.class);
startActivity(intent);
finish();
在activity 2
Intent intent=new Intent(activity2.this,activity3.class);
startActivity(intent);
finish();
如果你使用这个在你的前两个活动,然后在第三个活动不需要办理OnBackpressed()
由于OnBackpressed()
时,活动已经检测到用户的返回键的按下被调用。 默认实现只完成当前活动,但是你可以重写此做任何你想要的。
在第一次发射活动clearTaskOnLaunch =“真”:使用您的AndroidManifest.xml这个代码和android。
<activity
android:name="com.example.package.SplashActivity"
android:label="@string/app_name"
android:clearTaskOnLaunch="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
如果你要使用的关键事件,然后在你的活动使用此代码:
@Override
public boolean dispatchKeyEvent(KeyEvent event)
{
boolean result = false;
switch(event.getKeyCode())
{
case KeyEvent.KEYCODE_BACK:
finish(); // or moveTaskToBack(true);
result = true;
break;
default:
result= super.dispatchKeyEvent(event);
break;
}
return result;
}
在第一次发射活动launchMode =“singleTop”:在你的AndroidManifest.xml和Android使用此代码。