weixin_42393551 2010-08-11 20:11
浏览 311
已采纳

android中对于activity对象的困惑(新手问题)

  1. activity对象什么时候被创建,什么时候被销毁? 请说的形象一些

  2. activity里的onCreate方法什么时候执行,会被执行几次?

  3. 如果界面布局中有文本框,我们一般会为其设置一个id用来获取内容
    在activity中用findViewById()来获取,
    但为了避免每次都会调用该方法,我们会将其设置成成员变量,这样只需获得一次

public class XxxActivity extends Activity
{
private EditText text;
public void onCreate(...)
{
....
text = this.findViewById(...);
...
下面就是一个触发按钮的事件(比如保存)
}
}
问题: 当我们使用这个软件的时候,可能会多次用到"保存"按钮,那么是onCreate方法执行多次,还是匿名内部类中的方法执行多次呢?
如果是onCreate方法执行多次,那么我们获取指定id的文本框对象也会多次调用了(小弟也觉得不可能)
如果是onCreate方法执行一次,那么其内部的匿名类中的方法为何会执行多次? 这个我想不明白
(比如我写了一段文本,点保存,然后又重新写了一段文本,在保存,小弟以为是内部类中的方法会执行2次,应该是把?)

如果android牛人看到此问题,在博得一笑的同时请添上寥寥几笔以解困惑
如果是跟小弟一样的新手也曾有所困惑的但弄明白了,请不吝赐教
小弟刚到此论坛,积分不多,敬上5分,以表感谢!!

  • 写回答

4条回答 默认 最新

  • 「已注销」 2010-08-11 22:59
    关注

    1.activity代表一个界面,就是一个手机屏幕。activity对象在第一次调用的时候通过onCreate()创建,然后放到activity栈中,activity在栈中有集中状态,比如活跃了,暂停了等等。当kill或者调用onDestroy()的时候activity对象被销毁,从activity栈中移除。

    2.activity的onCreate()在第一次调用的时候执行,只执行这一次,之后不再执行,如果需要展示该activity,直接从activity栈中取得。

    3.onCreate()执行一次,匿名内部类里的回调函数执行的次数和触发事件的次数一样。
    以单击事件为例,当执行onCreate()的时候,只是为按钮设置好一个“事件监听的接口”,我们这个接口的匿名内部类里回调函数的实现是不会被执行的,只有当按钮被单击的时候才会执行匿名内部类里的单击回调函数。比如我说,唉,这个皮球给你color=red)[/color],我只是给你啦,皮球自己是不会弹起来的color=red[/color],它只有在你拍它的时候color=red[/color]才会弹起来,你拍几次它就会谈起几次color=red[/color]!不知道这么对比你明白了没有!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献