使用Intent.FLAG_ACTIVITY_SINGLE_TOP和CLEAR_TOP时没有传递额外内容

时间:2018-05-13 14:22:32

标签: android android-intent android-activity

doneButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if(!imgUriList.isEmpty())
            {
                    Intent intent = new Intent(getBaseContext(), createAdActivity.class);
                    intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP|Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imgUriList);
                    startActivity(intent);


            }
        }
    });
  

这是我在第二个活动中使用的代码,用于向第一个活动发送额外内容。

     

我希望在第二个活动回来时保留第一个活动。因此我使用了_SINGLE_TOP,CLEAR_TOP FLAGS。

     

没有Flags它运作良好。但在使用附加功能后,附加功能将变为空。   这是我在第一次活动中使用的代码。

 @Override
    protected void onResume() {
        super.onResume();
        Toast.makeText(this,"IN RESUME ",Toast.LENGTH_LONG).show();
        imageUris = getIntent().getParcelableArrayListExtra(Intent.EXTRA_STREAM);
        if(getIntent().hasExtra(Intent.EXTRA_STREAM)) {
            if (!imageUris.isEmpty()) {
                createAdViewPagerAdapter viewpager = new createAdViewPagerAdapter(this,imageUris);
                photoViewer.setAdapter(viewpager);
            }
        }
    }
  

由于第一个活动也使用了从MainActivity发送的一些额外内容,因此我也覆盖了onNewIntent()方法。

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

0 个答案:

没有答案