android 如何判断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卡刷新列表.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值