android 然后跳转activity 后返回保留原来的ListView数据

android 在第一个活动用Intent 跳转到第二个活动activity 后返回第一个活动,但是第一个活动中原来的ListView数据无法显示。
为什么无法返回跳转之前的第一个界面??

各位大神,求助!!

activity的生命周期问题,压入堆栈的avtivity会释放当前的状态,需要重新渲染
你可以缓存数据,resume的时候重新加载
onSaveInstanceState 试试这个

startActivityForResult 跳转 onActivityResult 接收 用这样的方法跳转

我写了一个例子,你看一下就明白了

 package com.xzy.test01;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;

public class MainActivity extends AppCompatActivity {

    private Button mButton;
    private ListView mListView;
    private ArrayList mArrayList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initView();
        initData();
    }

    private void initView() {
        mButton = findViewById(R.id.mBtn);
        mListView = findViewById(R.id.mListView);

        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, TestActivity.class);
                MainActivity.this.startActivityForResult(intent, 0x11);
            }
        });
    }

    private void initData() {
        mArrayList = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            HashMap hashMap = new HashMap();
            hashMap.put("text", "position" + i);
            mArrayList.add(hashMap);
        }
        SimpleAdapter simpleAdapter = new SimpleAdapter(this, mArrayList, R.layout.list_item, new String[]{"text"}, new int[]{R.id.text});
        mListView.setAdapter(simpleAdapter);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 0x11) {
            Toast.makeText(this, "我回来了", Toast.LENGTH_SHORT).show();
        }
    }
}

跳转到的activity

 package com.xzy.test01;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class TestActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
        findViewById(R.id.mBtn).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(TestActivity.this,MainActivity.class);
                TestActivity.this.setResult(0x11, intent);
                finish();
            }
        });
    }
}

记得MainActivity在跳转后不要finish掉

你的Activity1跳Activity2后,2返回1是调用Activity2的finish()而不是再startActivity启动Activity1。另外看下你Activity1中onStart,onRestart,onResume中有没有做什么操作。

在AndroidManifest.xml中给第一个activity加android:launchMode="singleTask"这个代码,标识栈内复用,而且1跳转到2的时候 不要finish()

跳转的时候用startActivityForResult 试试

你不贴代码我们也不知道具体是什么原因。。