美文网首页
Android 四大组件

Android 四大组件

作者: Lost_Robot | 来源:发表于2017-07-14 17:26 被阅读17次

    Android 的四大组件:

    名称 作用
    Activity 活动,UI页面,与一个用户交互
    Service 服务,无页面,在后台运行
    Broadcast 广播
    ContentProvider 内容提供者,主要与提供应用之间交互数据

    1. Activity 展示UI与用户交互

    Activity是由Activity栈管理的,Activity有四种状态:

    状态名称 描述
    运行状态 当Activity位于栈顶时,此时正好处
    于屏幕最前方,此时处于运行状态
    暂停状态 当Activity失去了焦点但仍然对用于可
    见(如栈顶的Activity是透明的或者栈顶Activity并
    不是铺满整个手机屏幕)
    停止状态 当Activity被其他Activity完全遮挡,此时此Activity对
    用户不可见,此时处于
    销毁状态 当Activity由于人为或
    系统原因(如低内存等)被销毁,此时处于

    在每个不同的状态阶段,Adnroid系统对Activity内相应的方法进行了回调。因此,我们在程序中写Activity时,一般都是继承Activity类并重写相应的回调方法。

    生命周期

    一个最简单的完整的Activity生命周期会按照如下顺序回调:onCreate -> onStart -> onResume -> onPause -> onStop -> onDestroy。称之为entire lifetime。

    回调方法 是否可见
    onCreate() visible lifetime
    onStart() visible lifetime
    onResume() foreground lifetime
    onPause() visible lifetime
    onStop() invisible lifetime
    onDestroy invisible lifetime

    页面跳转时生命周期的变化:
    A->B:
    将依次执行A:onPause -> B:onCreate -> B:onStart -> B:onResume -> A:onStop。
    Back键:
    将依次执行B:onPause -> A:onRestart -> A:onStart -> A:onResume -> B:onStop -> B:onDestroy。
    此时如果按下Back键,系统返回到桌面,并依次执行A:onPause -> A:onStop -> A:onDestroy。
    此时如果按下Home键(非长按),系统返回到桌面,并依次执行A:onPause -> A:onStop。由此可见,Back键和Home键主要区别在于是否会执行onDestroy。

    //通过重写按下Back键的回调函数,转成Home键的效果即可。
    
    @Override
    public void onBackPressed() {
        Intent home = new Intent(Intent.ACTION_MAIN);
        home.addCategory(Intent.CATEGORY_HOME);
        startActivity(home);
    }
    
    
    activity.moveTaskToBack(true);
    //moveTaskToBack()此方法直接将当前Activity所在的Task移到后台,同时保留activity顺序和状态。
    

    信息来源:
    http://www.cnblogs.com/lwbqqyumidi/p/3769113.html
    http://www.cnblogs.com/fansen/p/5667450.html
    http://blog.csdn.net/feiduclear_up/article/details/45971119

    相关文章

      网友评论

          本文标题:Android 四大组件

          本文链接:https://www.haomeiwen.com/subject/jmtzfxtx.html