当我点击android中的最小化/后退按钮时,活动就会消失

时间:2017-08-19 09:46:56

标签: java android android-activity android-lifecycle

在我的应用程序中,我有一项活动,如下图所示[![在此处输入图像说明] [1]] [1]

如果我点击“添加患者”按钮,它将重定向到另一个活动。如下图所示

如果我点击“NewPatient”活动中的主页按钮,它会显示“我的患者”活动,并且“NewPatient”活动消失。如果应用程序位于“NewPatient”,当您按下主页按钮时,请建议如何保留“NewPatient”活动“活动。

使用:

表示即时通讯
<activity
 android:name=".activity.patient.PatientsActivity"
 android:parentActivityName=".activity.MainActivity"/>

<activity
 android:name=".activity.patient.PatientFormActivity"
 android:parentActivityName=".activity.patient.PatientsActivity" />

4 个答案:

答案 0 :(得分:1)

只需使用Intent转到HomeActivity;

  @Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) // Press Back Icon
    {
        Intent i=new Intent(NewPatient.this,HomeActivity.class);
        startActivity(i);

    }

    return super.onOptionsItemSelected(item);
}

答案 1 :(得分:1)

你的代码在哪里? 但是你可以在你的代码中使用这一行

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_HOME) {
        //do somethings you want
    }
    return super.onKeyDown(keyCode, event);
}

答案 2 :(得分:1)

第一个解决方案。基于启动模式。

您可以在“新患者”活动前移动“我的患者”活动。

  1. 在清单
  2. 中将android:launchMode =“singleTask”设置为“我的患者”
  3. 覆盖“新病人”活动的onBackPressed()方法,并从中启动“我的病人”,而不是打电话给超级病人。
  4. 您可以阅读有关启动模式here的更多信息。

    第二种解决方案。基于捆绑的

    1. 从“我的患者”活动开始“新患者”活动。
    2. 覆盖“新病人”活动的onBackPressed()方法,并将您的数据保存为意图,并将其保存到onSaveInstanceState中的捆绑包。
    3. 在致电super.onBackPressed()
    4. 之前,通过致电setResult向“我的病人”活动提供已保存的数据
    5. 处理“我​​的病人”活动的onActivityResult()内保存的数据
    6. 使用保存的数据从“我的患者”活动中启动“新患者”活动的新实例。
    7. 第二个更合适,更少痛苦。

答案 3 :(得分:1)

我认为您不需要为此问题执行任何额外操作。在传递意图或任何清单时,你在其他地方犯了一个错误。如果您发现任何有用的东西,请使用以下示例:

在textview点击监听器上的MainActivity.java中,我开始了另一项活动:

findViewById(R.id.text).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getBaseContext(),Activity2.class));
            }
        });

这些活动的显示是:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ccc.stackoverflow">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Activity2">
        </activity>
    </application>

</manifest>

它可以按照您想要的方式工作。当我们回到app.Hope它可以帮助你时,Activity2仍然是开放的。