android如何退出多个Activity

  1. 说明
    在项目开发过程中,我们一定会遇到这样的需求,就是——一次性退出多个Activity。网上最常见的解决方案就是定义list集合,然后在onCreate()方法中将每个Activity添加到list集合中,在onDestroy()中去移除list集合中的Activity;或者就是广播或者其他的方案等等,今天我们就把这个问题的常用解决方案总结下,这个是我参照网上的解决方案自己汇总在一起,可能总结的不是很全,敬请谅解。

  2. 解决方案
    常见的解决方案有5种:堆栈管理器、list集合、广播、startActivityForResult()方法跳转然后用请求码和结果码判断、使用FLAG_ACTIVITY_CLEAR_TOP退出整个程序,就是这5种,其中常用的有堆栈管理器、list集合、广播,其余两种不太常用,那么下边我们就对这5种方法进行具体分析下:

  3. 5种方法具体分析
    3.1>:通过堆栈管理器去管理
    定义一个堆栈管理器,写成单例模式,在里边new Stack()栈,在每个Activity的onCreate()中将对应Activity添加到栈,在最后一个Activity的点击去移除栈中activity,然后 将activity置为null即可,具体代码如下:

/**
 * Email 2185134304@qq.com
 * Created by JackChen on 2018/1/31.
 * Version 1.0
 * Description:
 */
public class StackManager {
    /**
     * Stack �ж�Ӧ��Activity�б�  ��Ҳ����д�� Stack<Activity>��
     */
    private static Stack mActivityStack;
    private static StackManager mInstance;

    /**
     * @���� ��ȡջ������
     * @return ActivityManager
     */
    public static StackManager getStackManager() {
        if (mInstance == null) {
            mInstance = new StackManager();
        }
        return mInstance;
    }

    /**
     * �Ƴ�ջ��Activity
     */
    public void popActivity(Activity activity) {
        if (activity != null) {
            activity.finish();
            mActivityStack.remove(activity);
            activity = null;
        }
    }

    /**
     * ��õ�ǰջ��Activity
     */
    public Activity currentActivity() {
        //lastElement()��ȡ������Ԫ�أ�������ջ����Activity
        if(mActivityStack == null || mActivityStack.size() ==0){
            return null;
        }
        Activity activity = (Activity) mActivityStack.lastElement();
        return activity;
    }

    /**
     * ����ǰActivity����ջ��
     */
    public void pushActivity(Activity activity) {
        if (mActivityStack == null) {
            mActivityStack = new Stack();
        }
        mActivityStack.add(activity);
    }

    /**
     * ����ָ����clsss����ջ������������Activity
     * @clsss : ָ������ 
     */
    public void popTopActivitys(Class clsss) {
        while (true) {
            Activity activity = currentActivity();
            if (activity == null) {
                break;
            }
            if (activity.getClass().equals(clsss)) {
                break;
            }
            popActivity(activity);
        }
    }
    
    /**
     * ����ջ������Activity
     */
    public void popAllActivitys() {
        while (true) {
            Activity activity = currentActivity();
            if (activity == null) {
                break;
            }
            popActivity(activity);
        }
    }
}

FirstStep.this代码如下:

public class FirstStep extends BaseActivity {

    private Button btn_next_step;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first_step);

        initView() ;
        mStackManager.getStackManager().pushActivity(this); //把Activity添加到栈中
    }

    private void initView() {
        btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(FirstStep.this , SecondStep.class));
            }
        });

    }
}

SecondStep.this代码如下:

public class SecondStep extends BaseActivity {

    private Button btn_next_step;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_step);

        initView() ;
        mStackManager.getStackManager().pushActivity(this); //把Activity添加到栈中
    }

    private void initView() {
        btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(SecondStep.this , ThirdStep.class));
            }
        });
        
    }
}

ThirdStep.this代码如下:

public class ThirdStep extends BaseActivity {

    private Button btn_next_step;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.third_step);

        initView() ;
        mStackManager.getStackManager().pushActivity(this); //把Activity添加到栈中
    }

    private void initView() {
        btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(ThirdStep.this , FourthStep.class));
            }
        });
        
    }
}

FourthStep.this代码如下:

public class FourthStep extends BaseActivity {

    private Button btn_finish;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fourth_step);
        initView() ;
        mStackManager.getStackManager().pushActivity(this); //把Activity添加到栈中
    }

    private void initView() {
        btn_finish = (Button) findViewById(R.id.btn_finish);
        btn_finish.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mStackManager.getStackManager().popAllActivitys();
            }
        });
        
    }
}

3.2>:使用list集合:
在BaseApplication中定义list集合,然后定义addActivity()<用于在每个Activity初始化时将该Activity添加到集合中>、clearActivity()<用于清空list集合>、exit()方法<用于遍历集合退出所有Activity>,然后在每个Activity的onCreate()方法中调用addActivity(),在onDestroy()中调用clearActivity(),然后在最后一个Activity调用exit()即可,具体代码如下:

/**
 * Email 2185134304@qq.com
 * Created by JackChen on 2018/1/31.
 * Version 1.0
 * Description:
 */
public class AppApplication extends Application {
    private static AppApplication mAppApplication;
    /** ��ǰ�򿪵�activity�б� */
    public ArrayList<Activity> activityList;

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        mAppApplication = this;
    }

    /** ��ȡApplication */
    public static AppApplication getApp() {
        if (mAppApplication == null) {
            mAppApplication = new AppApplication();
        }
        return mAppApplication;
    }

    /** 给集合添加activity */
    public void addActivity(Activity acitivity) {
        if(activityList == null){
            activityList = new ArrayList<Activity>();
        }
        activityList.add(acitivity);
    }
    
    /** 从集合移除activity */
    public void clearActivity(){
        activityList.clear();
    }

    /** 遍历集合,清除集合所有的activity */
    public void exit() {
        for (Activity activity : activityList) {
            activity.finish();
        }
        clearActivity();//ǧ��ǵ����ȡ�����á�
        System.exit(0);
    }
}

FirstStep.this代码如下:

public class FirstStep extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first_step);

        initView() ;

        AppApplication.getApp().addActivity(this);   //把Activity添加到集合中
    }

    private void initView() {
        Button btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(FirstStep.this , SecondStep.class));
            }
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        AppApplication.getApp().clearActivity();  //清除list集合
    }
}

SecondStep.this代码如下:

public class SecondStep extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_step);


        initView() ;

        AppApplication.getApp().addActivity(this);   //把Activity添加到集合中
    }

    private void initView() {
        Button btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(SecondStep.this , ThirdStep.class));
            }
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        AppApplication.getApp().clearActivity();  //清除list集合
    }
}

ThirdStep.this代码如下:

public class ThirdStep extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.third_step);
        initView() ;

        AppApplication.getApp().addActivity(this);   //把Activity添加到集合中
    }

    private void initView() {
        Button btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(ThirdStep.this , FourthStep.class));
            }
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        AppApplication.getApp().clearActivity();  //清除list集合
    }
}

FourthStep.this代码如下:

public class FourthStep extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fourth_step);

        initView() ;

        AppApplication.getApp().addActivity(this);   //把Activity添加到集合中
    }

    private void initView() {
        Button btn_finish = (Button) findViewById(R.id.btn_finish);
        btn_finish.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AppApplication.getApp().exit();
            }
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        AppApplication.getApp().clearActivity();  //清除list集合
    }
}

3.3>:使用广播
在BaseActivity中,注册、接收广播,然后让每个Activity继承BaseActivity,并且在每个Activity的onDestroy()中注销广播,在最后一个Activity发送广播,然后在BaseActivity中接收广播的onReceive()方法中finish()即可,具体代码如下:

/**
 * Email 2185134304@qq.com
 * Created by JackChen on 2018/1/31.
 * Version 1.0
 * Description:
 */
public class BaseActivity extends Activity {

    //用于广播的标志
    public final static String INIENT_FINISH = "com.allfinish.method.finish";

    //用于startActivityForResult()的标志
    public final static int FINISH_REQUESTCODE = 1;
    public final static int FINISH_RESULTCODE = 1;



    public StackManager mStackManager ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }


    /**
     * 注册广播
     */
    public void initReceiver(){
        IntentFilter filter = new IntentFilter() ;
        filter.addAction(INIENT_FINISH);
        registerReceiver(mRceiver , filter) ;
    }


    /**
     * 初始化广播接收者
     */
    public BroadcastReceiver mRceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (INIENT_FINISH.equals(intent.getAction())){
                finish();
            }
        }
    } ;


    /**
     * 用于startActivityForResult()
     * @param requestCode
     * @param resultCode
     * @param data
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == FINISH_REQUESTCODE){
            if (resultCode == FINISH_RESULTCODE){
                setResult(FINISH_REQUESTCODE);
                finish();
            }
        }
    }
}

FirstStep.this代码如下:

public class FirstStep extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first_step);

        initView();
        initReceiver();
    }

    private void initView() {
        Button btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(FirstStep.this , SecondStep.class));
            }
        });
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(mRceiver);
    }
}

SecondStep.this代码如下:

public class SecondStep extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_step);

        initView();
        initReceiver();
    }

    private void initView() {
        Button btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(SecondStep.this , ThirdStep.class));
            }
        });
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(mRceiver);
    }
}

ThirdStep.this代码如下:

public class ThirdStep extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.third_step);

        initView();
        initReceiver();
    }

    private void initView() {
        Button btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(ThirdStep.this , FourthStep.class));
            }
        });
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(mRceiver);
    }
}

FourthStep.this代码如下:

public class FourthStep extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fourth_step);

        initView();
        initReceiver();
    }

    private void initView() {
        Button btn_finish = (Button) findViewById(R.id.btn_finish);
        btn_finish.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                sendFinish();
            }
        });
    }

    private void sendFinish() {
        getApplicationContext().sendBroadcast(new Intent(INIENT_FINISH));
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(mRceiver);
    }
}

3.4>:使用startActivityForResult()方法跳转,然后用请求吗和结果码判断:
在第一、第二、第三个Activity中使用startActivityForResult(new Intent(FirstStep.this , SecondStep.class) , FINISH_REQUESTCODE)携带请求码跳转Activity,然后在最后一个Activity使用setResult(FINISH_RESULTCODE);用结果码,然后finish()最后一个Activity,然后在BaseActivity中写onActivityResult()方法,使用返回码和结果码,如果自己定义的请求码和返回码与返回的相等,就执行setResult(FINISH_RESULTCODE);并且finish()即可,具体代码如下:

FirstStep.this代码如下:

public class FirstStep extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first_step);

        initView() ;
    }

    private void initView() {
        Button btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivityForResult(new Intent(FirstStep.this , SecondStep.class) , FINISH_REQUESTCODE);
            }
        });
    }
}

SecondStep.this代码如下:

public class SecondStep extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_step);

        initView() ;
    }

    private void initView() {
        Button btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivityForResult(new Intent(SecondStep.this , ThirdStep.class) , FINISH_REQUESTCODE);
            }
        });
    }
}

ThirdStep.this代码如下:

public class ThirdStep extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.third_step);

        initView() ;
    }

    private void initView() {
        Button btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivityForResult(new Intent(ThirdStep.this , FourthStep.class) , FINISH_REQUESTCODE);
            }
        });
    }
}

FourthStep.this代码如下:

public class FourthStep extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fourth_step);

        initView() ;
    }

    private void initView() {
        Button btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setResult(FINISH_RESULTCODE);  //结果码
                finish();
            }
        });
    }
}

3.5>:使用 FLAG_ACTIVITY_CLEAR_TOP 退出整个程序,不过不常用:
从第一个Activity跳转到第二个Activity,第二个Activity跳转到第三个Activity,第三个Activity跳转到第四个Activity,然后从第四个跳转到第一个Activity需要使用 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) ;
代码如下:

FirstStep.this代码如下:

public class FirstStep extends BaseActivity {

    private Button btn_next_step;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first_step);

        initView() ;
    }

    private void initView() {
        btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(FirstStep.this , SecondStep.class));
            }
        });
    }
}

SecondStep.this代码如下:

public class SecondStep extends BaseActivity {

    private Button btn_next_step;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first_step);

        initView() ;
    }

    private void initView() {
        btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(SecondStep.this , ThirdStep.class));
            }
        });
    }
}

ThirdStep.this代码如下:

public class ThirdStep extends BaseActivity {

    private Button btn_next_step;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first_step);

        initView() ;
    }

    private void initView() {
        btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(ThirdStep.this , FourthStep.class));
            }
        });
    }
}

FourthStep.this代码如下:

public class FourthStep extends BaseActivity {

    private Button btn_next_step;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fourth_step);

        initView() ;
    }

    private void initView() {
        btn_next_step = (Button) findViewById(R.id.btn_next_step);
        btn_next_step.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(FourthStep.this , MainActivity.class) ;
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) ;
                startActivity(intent);

            }
        });
    }
}

ok,到这里,我们就全部讲完了退出多个Activity的5种方法,大家有什么不懂的,不太明白的可以直接看注释,代码中注释很详细,如果还是不太懂的可以加我QQ:2185134304.
具体代码已上传至github:
https://github.com/shuai999/FinishMoreActivity.git

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,807评论 25 707
  • 【Android Activity】 什么是 Activity? 四大组件之一,通常一个用户交互界面对应一个 ac...
    Rtia阅读 3,797评论 3 18
  • 1.什么是Activity?问的不太多,说点有深度的 四大组件之一,一般的,一个用户交互界面对应一个activit...
    JoonyLee阅读 5,729评论 2 51
  • 一、个人特质调整方向:强化D和C,适当拓展I 具体行动: 1.工作模块增加,多线并发,考虑做决策,强化【主动承担】...
    庙祝阅读 307评论 0 0
  • boolean available = NetWorkUtils.isNetWorkAvailable(this)...
    烟入墨阅读 478评论 0 1