onActivityResult не вызывался при нажатии кнопки «Домой»

У меня есть три таких действия:
+ LoginPage: отображать только один раз, когда приложение установлено
+ MainActivity: главный экран приложения
+ TextNoteActivity: вспомогательное действие вызывается startActivityForResult из MainActivity

Я не знаю, почему, когда я нажимаю кнопку «Домой» в TextNoteActivity. Приложение закроется. Ниже приведен мой код.

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

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name="activity.MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar"
        >
    </activity>

    <activity
        android:name="activity.LoginPage"
        android:label="@string/app_name"
        android:noHistory="true"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>
    </activity>

    <activity android:name="activity.TextNoteActivity"
        android:parentActivityName="activity.MainActivity"
        >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="activity.MainActivity" />
    </activity>

    <activity
        android:name="activity.AddTagActivity"
        android:label="@string/title_activity_add_tag"
        android:theme="@style/AppTheme">

    </activity>

</application>

In MainActivity :

Intent i = new Intent(this, TextNoteActivity.class);
startActivityForResult(i, REQUEST_ADDTEXTNOTE);

В TextNoteActivity:

    toolbar = (Toolbar) findViewById(R.id.addTextNote_toolbar);
    toolbar.setTitle("");
    setSupportActionBar(toolbar);

    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            addTextNote();
            Toast.makeText(TextNoteActivity.this, "Back then", Toast.LENGTH_SHORT).show();
            finish();
        }
    });

Обновить

   private void addTextNote() {
    String title = etTitle.getText().toString();
    String content = etContent.getText().toString();

    if (!title.isEmpty() &&  !content.isEmpty()) {
        TextNote textNote = new TextNote(title, 0, content);
        database.addTextNote(textNote, null);
        setResult(RESULT_OK);
    }
    else {
        setResult(Activity.RESULT_CANCELED);
    }

}

person Son Tieu    schedule 12.01.2016    source источник
comment
Я не знаю, почему, когда я нажимаю кнопку «Домой» в TextNoteActivity. Приложение закроется. - ну, это поведение Android по умолчанию, чего вы ожидали?   -  person Egor    schedule 12.01.2016
comment
android:parentActivityName=.MainActivity добавьте это в файл androidmanifest приложения ‹application› и повторите попытку.   -  person Mahesh Giri    schedule 12.01.2016
comment
@Egor Потому что я хочу вернуться к MainActivity. но он закрылся   -  person Son Tieu    schedule 12.01.2016
comment
я просто обновляю свой код. ср об этом!   -  person Son Tieu    schedule 12.01.2016


Ответы (1)


Это ожидаемое поведение
Нет причин для того, чтобы ваша активность возвращала результат, когда пользователь нажимает кнопку Home.
Если вам нужно перехватить событие кнопки Home
, вы можете переопределить onPause() и finish() активность.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ
Но я боюсь, что это не очень хорошее поведение приложения,
потому что пользователь не ожидает, что состояние приложения изменится, когда он нажмет кнопку Home.

person alvi    schedule 12.01.2016