[问题] 如何判断是第一个开启的Activity

楼主: issuemylove (NotLove)   2014-10-24 10:09:10
想请问各位大大
我的app在一刚开始要如何判定
从0个 activity 的状态变成 1个Activity
但不等于完整的App被关掉再开启,因为有时候0个activity不代表App不在内存中了
另外,由于开启activity不一定是透过 手压App icon出现 (intent action: MAIN)
所以无法从 intent下手
主要是因为我想要一个activity A在 onCreate作一些事情
但是activity A 跳到别的activity B 的时候
再按 back 键回来,原先的activity A就有时候会从 onCreate开始作
(应该是被系统杀掉)
不知有什么好方法可以解决呢?
谢谢!
作者: Deltaguita (伯利兹)   2014-10-24 11:18:00
如果是程式初始化的动作不希望activity再做一次你可以考虑把初始化的事情在Application类别实作或是有一个计数的变量,在每次application onCreate()设定初始值=0,Activity onCreate()的时候+1这样你就可以透过这个变量知道是不是第一个activity
作者: ckvir (ckvir)   2014-10-24 13:47:00
就建一个class里面有static member用来存变量不就好了
楼主: issuemylove (NotLove)   2014-10-24 18:18:00
问题是这样每写一个activity都要在onCreate onDestroy 那边都要写 感觉在专案里面会有很多东西要改 冏
作者: freesamael (烧卖)   2014-10-24 20:19:00
最好不要有这样的设计,你想这么做的理由是什么?能不能有其他替代的解决方案?
作者: tac0wu (在BBS中流浪)   2014-10-25 14:02:00
在背景被gc的时候 会call onSaveInstance 来保存state在重新onCreate 时你可以在去 读取之前的state
作者: studentjason (studentjason)   2014-10-25 21:11:00
不知道写一个继承application的class ,在里面做你要做的轴,这样是不是你想要的?
楼主: issuemylove (NotLove)   2014-10-27 17:25:00
QQ 其实上面的方法几乎都可行,但如freesa大讲的程式的结构会潜藏危机
作者: KeySabre (KeySabreur)   2014-10-30 01:01:00
写一个BaseActivity让专案内所有Activity继承?若是AB执行顺序固定,用forResult应该能保留A?

Links booklink

Contact Us: admin [ a t ] ucptt.com