对应用程序的重新推出Android的重启活动(Restart Android activity on

2019-10-29 04:40发布

我在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);
}

请帮我。 提前致谢

Answer 1:

  1. 创建三个活动 - A,B和C
  2. 在活动A - 调用startActivity(B)时,呼叫结束()也。 例如 -

      public void onButtonClick() // Some method { startActivity(intentForB); finish(); } 
  3. 类似地从乙去到C时 -

      public void onButtonClick() { startActivity(intentForC); finish(); } 
  4. 当用户在活动℃,当他按下后退按钮,应用程序将得到关闭。(无需编写后退按钮处理明确)。

希望这可以帮助。



Answer 2:

您可以通过以下方式你的第三个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();
}


Answer 3:

如果你想退出在所有3个活动,则必须关闭当前使用活动finish()而开始一个新的活动。



Answer 4:

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()时,活动已经检测到用户的返回键的按下被调用。 默认实现只完成当前活动,但是你可以重写此做任何你想要的。



Answer 5:

在第一次发射活动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;
    }


Answer 6:

在第一次发射活动launchMode =“singleTop”:在你的AndroidManifest.xml和Android使用此代码。



文章来源: Restart Android activity on relaunch of application