让接收到的数据一直显示,不消失

有MainActivity, MainActivity2, MainActivity3.
MainActivity是启动页

img


通过后台按键跳转到MainActivity3.
输入数据,传递数据并跳转到 MainActivity2

img

img


在MainActivity2里按返回按键跳转到MainActivity
到MainActivity后按前台按键再次进入 MainActivity2,

img


为什么之前从MainActivity3转递给MainActivity2的数据不见了,有什么办法让MainActivity2接收的数据一直显示

Android SharedPrferences (简称SP)使用键值对(key-value)进行数据存储,用来存储一些小数据,更详细的用法可以在CSDN上搜索,很多很多
针对你的逻辑,可以在第一次跳转的时候进行存储,销毁后下次再进来可以判断Intent有没有携带数据进来,有的话使用Intent携带的数据进行显示,并使用SP进行存储;没有的话获取SP里面上次存储的数据进行显示

//存放数据
SharedPreferences preferences = context.getSharedPreferences("app_name",Context.MODE_PRIVATE);//app_name可以随便取
Editor editor = preferences.edit();
editor.putString("user_name", "18888888888");//存放数据,参数分别是  key,value
editor.apply();
//拿到数据
SharedPreferences preferences = context.getSharedPreferences("app_name",Context.MODE_PRIVATE);
String userName = preferences .getString("user_name", "");//拿到数据,参数分别是  key,defaultValue
  1. 因为你在2中,点击返回,就把它finish了,并没有保存2的值;再由1进来,重新创建2。
  2. 要保存:可以用SharePreference存取。

你按返回键就将MainActivity2销毁了,再次进入就是一个全新的MainActivity2了,之前显示的数据肯定没有再显示了。你可以把数据全局保存了,或者持久化了,进入MainActivity2后重新显示

你这个需求类似于记住账号密码,可以学一下数据存储
https://blog.csdn.net/qq_45146250/article/details/124273332

SharePreference最简单,这种数据量比较小比较简单的话直接SharePreference储存就可以了