android 如何判断activity是否是暂停之后回来的还是重新打开的

时间:2022-02-22 23:48:14

原文转载自:http://blog.sina.com.cn/s/blog_6e51958501014l38.html

如何判断activity是否是暂停之后回来的还是重新打开的. 我们项目中有时候会遇到一种情况,就是app中需要联网去下载东西.然后回来在次打开的时候更新listview.数据是原来的数据加上下载之后的 数据, 首先:我们怎么知道是重新回来了这个activity呢? 写一个MyApplication类,存放app的共享信息. 其中mActiveActivityName 参数是目前打开的activity的名字.每个activity打开的时候都执行这么一句.当然你可以写一个baseactivity. 每个新的activity都继承就行了. ------------------------------------------------------------------------------------------------------------ acyivity
@Override protected void onResume() { super.onResume(); ((MyApplication)getApplication()).setStartActivityName(getClass().getName()); mEnableState = true; } ------------------------------------------------------------------------------------------------------------ MyApplication
private String mActiveActivityName = ""; private boolean mIsBackendReturn = false; public void setStartActivityName(String name) { if(name.compareTo(mActiveActivityName) == 0) { mIsBackendReturn = true; mIsDataBoxUpdated = false; } else { mIsBackendReturn = false; } mActiveActivityName = name; }
public boolean isBackendReturn() { return mIsBackendReturn; }
private boolean mIsDataBoxUpdated = false; public boolean IsDataBoxUpdated() { return mIsDataBoxUpdated; } public void DataBoxUpdateNow() { mIsDataBoxUpdated = true; } ------------------------------------------------------------------------------------------------------------ 别的地方需要调isBackendReturn就知道是否是回来的.name.compareTo(mActiveActivityName)相等的时候就说明是返回来的,需要 更新 mIsBackendReturn = true; mIsDataBoxUpdated = false; 别处调用的时候就知道是否需要更新列表了
--------------------------------------------- 实际应用中的用途: 我们有时候读取sd卡需要比较多的内存,我们如果不需要更新的时候就把需要读取的path保存到文件里面,当需要更新的时候才读取sd卡刷新列表.