2016-06-20 2 views
0

Есть 2 мероприятия. А и Б.SingleTask Активность android + воссоздать эту активность

Первый Активность A (он был настроен с некоторой вещи из де Связка Намерению ...

A -> B B-> A (начиная новую активность, не onBackPressed ()). Деятельность A должна быть воссоздана, смену Intent's Bundle изменилось, также должно быть singleTask.

От B до A следует воссоздать A Деятельность, я не хочу использовать onResume() для деятельности A.

EDIT: это как whatsapp. Вы находитесь в группе-> settings-> infoGroup-> member клик-> отправить сообщение Он начинает ту же самую активность (активность чата), но когда вы возвращаетесь, групповой чат Activity не существует.

Любая идея?

+0

Почему вы используете SingleTask в первую очередь? Похоже, это не то, что вы хотите. – DeeV

+0

Флаг CLEAR_TOP может быть полезен –

+0

@DeeV, потому что мне нужно только 1 «A». – Borja

ответ

0

Я не уверен, если я понимаю вашу проблему, но вы можете использовать onNewIntent:

Если вы просто хотите, чтобы воссоздать Activity A для данных, которые вы передаете с расслоением, когда вы начинаете с B вы можете вы можете переопределить onNewIntent метод деятельности А, получить комплект и сделать свой персонал.

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 
    setIntent(intent); 
    initLayout(); 
} 

Ваш OnCreate метод может быть как это:

@Override 
public void onCreate(Bundle icicle){ 
    super.onCreate(icicle); 
    setContentView(R.id.your_layout); 
    // find views; 
    initLayout(); 
} 

public void initLayout(){ 
    final Bundle bundle = getIntent().getExtras(); 
    if(bundle != null){ 
     // init layout 
     // do other staff 
    } 
} 

Я думаю, что это лучший способ справиться с вашей проблемой.

Удачи.

+0

Я много делаю материала в onCreate метода. Я не думаю, что это лучший вариант ... – Borja

+0

определить метод для них. здесь я редактирую свой пост. – savepopulation

0

Для этого используйте FLAG_ACTIVITY_CLEAR_TOP и в manifestlaunchMode вашей деятельности singleinstance

, идя от B -> A с помощью CLICK

+0

Нет, потому что, может быть, я вернусь с onBackPressed, и активность будет убита. – Borja

+0

@Borja см. Обновленный ответ –

+0

не работает – Borja