Android学习笔记(一)

前言

最近因为一个安卓项目开始学习Android开发,发现有好多东西记不住,java 基础也不是很牢固。笔记就写到这里面吧。


一、活动的生命周期

onCreate() 用于完成活动的初始化操作,在第一次创建活动的时候使用。

onStart() 在活动由不可见变为可见的时候调用。

onResume() 在活动准备好和用户交互时调用,此时活动一定位于栈顶,并且处于运行状态。

onPause() 在系统准备去启动或者恢复另一个活动的时候调用。

onStop() 在活动完全不可见的时候调用。

onDestroy() 在活动被销毁时调用,之后活动的状态将变为销毁状态。

onRestart() 在活动由停止状态变为运行状态之前调用。

其中 onCreate() 和 onDestroy() 是一对,表示活动的创建和销毁;onStop() 和 onStart() 用在当前活动被完全遮挡,从 onStop() 到 onStart() 中间要经历一个 onRestart() ;onPause() 和 onResume() 表示活动没有被完全遮挡。


android:theme 属性是用于给当前活动指定主题,例如
android:theme="@android:style/Theme.Dialog"

这是让当前活动使用对话框式的主题


onSaveInstanceState() 可以保证在活动被回收之前一定会被调用。

@Override
protected void onSaveInstanceState(Bundle outState) {
	super.onSaveInstanceState(outState);
	String tempData = "Something you just typed";
	outState.putString("data_key", tempData);
}

然后在onCreate()中添加如下代码

...
if (savedInstanceState != null) {
	String tempData = savedInstanceState.getString("data_key");
	Log.d(TAG, tempData);
}
...

二、活动的启动模式

活动的启动模式可以在AndroidManifest.xml中如下指定:

android:launchMode="xxxx"

启动模式有4种,standard, singleTop, singleTask, singleInstance

1.standard

  系统默认的启动模式,每次启动都会入栈,创建一个新的实例。
在这里插入图片描述

2、singleTop

  如果活动已经在栈顶了,就不会创建新的活动实例。否则创建一个新的活动实例。
在这里插入图片描述

2、singleTask

   系统首先在返回栈中检查是否存在该活动实例,如果发现就使用,并把上面所有活动出栈。如果没有就创建一个新的活动实例。
在这里插入图片描述

2、singleInstance

   会有一个单独的返回栈来处理该活动。
在这里插入图片描述


三、活动实践

getClass().getSimpleName()

可以获取底层类的名称,可以由此获得当前活动的名称。

一键退出

public class ActivityCollector {
    public static List<Activity> activities=new ArrayList<>();
    public static void addActivity(Activity activity) {
        //向List中添加活动
        activities.add(activity);
    }
    public static void removeActivity(Activity activity) {
        activities.remove(activity);
    }
    public static void finishAll() {
        for (Activity activity:activities) {
            if (!activity.isFinishing()) {
                activity.finish();
            }
        }
    }
}

public class BaseActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("BaseActivity", getClass().getSimpleName());
        ActivityCollector.addActivity(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        ActivityCollector.removeActivity(this);
    }
}

所有活动都继承 BaseActivity 类,调用ActivityCollector.finishAll()来推出所有活动。


总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值