刚接触Activity时,通常都说可以这样理解:一个界面就是一个activity
但做了一段时间,突然觉得不解了,因为感觉好像有些界面并不依赖于activity?在任何一个界面比如短消息,按下电源键,屏幕暗下来,在按一下电源键屏幕点亮,这时
进入锁屏界面,在这个过程中并没看到ActivityManager的log 有start任何activity,那这个
LockScreen界面是属于哪个activity??
看了LockScreen.java,KeyguardViewMediator.java,LockPatternView.java也没一个是ACtivity
的。
类似的界面还有,比如任何界面下按下音量键,弹出的音量调节窗口,这个窗口是在属于哪个activity呢?是否Android对窗口的管理activity只是一个方面

解决方案 »

  1.   

    activity 中可以有很多view可以用系统的 也可以自定义   但是view必需基于 activity 。 
      

  2.   

    首先activity是件一个活动,像你说的那样弹出一个窗口可以属于一个活动。像我们在VS下做c#编程一样,用一个MessageBox就可以了。通常情况下一个activity就是一个小apk,但是在复杂的软件里,可以有多少activity,它们之间用intent来调用切换。上面你说的弹出一个窗口,在log中并没有看到start之类的消息。那么你可以去了解activity的生命周期,android手机秉承最大占用的原则,也就是一个apk开启,如果用户不强制关掉它,android会不关闭它的,只有在内存不足的情况下,android会将栈中的已经很久没有响应用户apk关掉。所以在log中不会有start这个log.再所以关锁啊之类的,也不会start的log出现。
      

  3.   

    不一定每个界面都是Activity.有的也可能是继承View;你只需一个Activity.但你有多个View的话,可以通过setContentView(View).来设置不同的界面显示!
      

  4.   

    Activity 与 控件的关系
    Activity —— 控件的容器LockScreen、LockPatternView是两个View,并不是Acitivity按电源键待机时,就会调用LockScreen的onShow方法,该方法会重新绘制Keyguard待机界面,LCD有个buffer会保存当前的画面,当点亮屏幕时,待机界面就呈现按音量键弹出的那个窗口是Activity的特色式样,它设置了android:theme 属性 为 Theme.Dialog
      

  5.   

    谢谢回答。
    那就是说,某些窗口可以不依赖于activity,仅仅继承view也可以show出一个画面?
      

  6.   

    显示出来的必须是activity,就算是dialog也是activity的原理,就和网络上一样,无论怎么显示都是html,什么php,jsp,asp原理都是html
      

  7.   

    我们看到的不仅仅有activity,还有view和dialog。
    一个activity里面可以放置不同的view
      

  8.   

    楼上说的对,一个Activity里面可以加载很多view,当然加载新的view的时候,以前的view就看不到了。