当前位置:   article > 正文

android 如何判断activity是否是暂停之后回来的还是重新打开的_activity怎么判断当前是被切换回来的

activity怎么判断当前是被切换回来的

原文转载自: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卡刷新列表.
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/144786
推荐阅读