Activty的跳转 A 到 B ,返回刷新当前页

A启动B  A生命周期全过程

1.启动A

      Activity的初始化了,A第一步创建onCreate(20569): -------->成功!
     Activity被激活A,onStart   Activity显示在屏幕上(20569): -------->成功!

     Activity被恢复A,onResume(20569): -------->成功!


2.在A中启动B

   Activity被暂停A,Activity进入暂停状态onPause(21407): -------->成功!
   B------------------>(21407): 创建!
   Activity被激活B,onStart   Activity显示在屏幕上(21407): -------->成功!
   Activity被恢复B,onResume(21407): -------->成功!
   Activity被停止A,Activity进入停止状态onStop(21407): -------->成功!

3.从B中返回A(按物理硬件返回键)

     Activity被暂停B,Activity进入暂停状态onPause(21407): -------->成功!
     Activity被重启A,Activity从停止状态进入活动状态onRestart(21407): -------->成功!
     Activity被激活A,onStart   Activity显示在屏幕上(21407): -------->成功!
     Activity被恢复A,onResume(21407): -------->成功!
     Activity被停止B,Activity进入停止状态onStop(21407): -------->成功!

     Activity的消亡了,B最后的生命!销毁onDestroy(21407): -------->成功!


4.继续返回

     Activity被暂停A,Activity进入暂停状态onPause(21407): -------->成功!
     Activity被停止A,Activity进入停止状态onStop(21407): -------->成功!

     Activity的消亡了,A最后的生命!销毁onDestroy(21407): -------->成功!


刷新activity的方法:

1. 刷新当前activity界面数据(手动刷新):
在activity类下新增一个refresh()方法:
/**
* 刷新, 这种刷新方法,只有一个Activity实例。
*/
public void refresh() {
onCreate(null);
}

2. 刷新另一个activity界面数据(自动刷新):
在涉及到sqlite3数据库操作的activity类下重写onResume()方法:(此处建议复习下activity的生命周期, 并了解下onResume()方法的使用)
/**
* 调用onCreate(), 目的是刷新数据, 
* 从另一activity界面返回到该activity界面时, 此方法自动调用
*/
@Override
protected void onResume() {
super.onResume();
onCreate(null);
}
由此, 涉及到sqlite数据库数据的插入/更新/删除的activity的类, 建议像上面一样重写onResume()方法, 这是本人在实践中解决"刷新另一activity界面数据"的可行方法

猜你喜欢

转载自blog.csdn.net/qwer492915298/article/details/50681729