SingleTask Activity android +重新创建Activity

时间:2016-06-20 15:00:57

标签: android android-intent android-activity

有2项活动。 A和B.

第一个活动是A(它已经配置了来自意图的de Bundle的一些东西......

A - >乙 B-> A(开始新的Activity,而不是onBackPressed())。活动A需要重新创建,Intent的Bundle已经改变。它也必须是singleTask。

B到A应该重新创建一个活动,我不想使用活动A的onResume()。

编辑:它就像whatsapp。 您在一个组 - > gt- settings-> infoGroup->成员点击 - >发送消息 它启动相同的活动(聊天活动),但当您返回群聊时,活动不存在。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我不确定我是否理解您的问题,但您可以使用onNewIntent:

如果您只是想为从B开始传递的数据重新创建活动A,那么您可以覆盖活动A的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
    }
}

我认为这是解决问题的最佳方式。

祝你好运。

答案 1 :(得分:0)

为此,请使用FLAG_ACTIVITY_CLEAR_TOP和您活动的manifest launchMode singleinstance

从B出发 - >使用CLick