Подтвердить что ты не робот

Как возобновить работу, а не перезапускать при переходе из панели действий

У меня есть два действия. Скажите Activity A и Activity B.
От Activity A Я нажимаю кнопку для запуска Activity B Это код, который я использую для этого:

Intent intent = new Intent(this, ActivityB.class);
this.startActivity(intent);

<ч/" > Теперь я нахожусь в Activity B. В методе on on Activity B я включаю кнопку "вверх".

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view_news);

    getActionBar().setDisplayHomeAsUpEnabled(true); //Here//
}

и в дескрипторе события для кнопки "вверх" у меня есть этот код:

public boolean onOptionsItemSelected(MenuItem item){
     switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            NavUtils.navigateUpFromSameTask(this);
        default:
            return super.onOptionsItemSelected(item);
    }
}

<ч/" > Теперь я решил вернуться к Activity A. Я нажимаю кнопку "вверх" в панели действий, которая выглядит так: enter image description here

Теперь проблема заключается в том, что когда я нажимаю кнопку "вверх", она возвращается к Activity A, которая в порядке, но она перезапускает. Как заставить его остановить перезапуск? Я просто хочу, чтобы он возобновил.

Когда я использую свою кнопку назад, она работает так, как ожидалось. то есть он переходит в Activity A и возобновляет его, а не перезапускает.

Я хочу, чтобы моя активность возобновилась, потому что на этом мероприятии я загружаю некоторую строку в сети, поэтому я не хочу, чтобы она продолжала загружать данные, когда пользователи переходят из Activity B → Activity A


Изменить Мой файл манифеста для раздела Activity B выглядит следующим образом:
<activity
    android:name="com.example.android.ActivityB"
    android:label="@string/title_activity_view_news"
    android:parentActivityName="com.example.android.ActivityA">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.android.ActivityA" />
</activity>

<ч/" > Изменить 2 [Ответ] Итак, это было довольно неожиданно, но в моем AndroidManifest.xml в разделе "Активность А" мне пришлось добавить следующий линейный лайнер. android:launchMode="singleTop", теперь он выглядит следующим образом:

<activity
    android:name="com.example.android.ActivityA"
    android:label="@string/app_name" 
    android:launchMode="singleTop"> //**HERE**//
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

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

Объяснение этому дано здесь

4b9b3361

Ответ 1

Должен был добавлен как ответ вместо комментария.. но здесь вы идете так, что можете принять, если хотите, чтобы другие могли видеть, если необходимо.

fooobar.com/questions/88934/...

В принципе, для суммирования андроида всегда будет воссоздавать действие, если вы не укажете его не с помощью

android:launchMode="singleTop"

Примечание: он не будет работать, если возвращаемая активность не находится в верхней части заднего стека, как указано в ссылке.

Для кого-либо еще, пожалуйста, повысьте ответ в url вместо моего, если найдете это полезным.

Ответ 2

Вы также можете достичь того же результата программно

Intent upIntent = NavUtils.getParentActivityIntent(this);
upIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
NavUtils.navigateUpTo(this, upIntent);