活动的四种状态:
1.运行状态:活动位于返回栈的栈顶时,活动就处于运行状态。
2.暂停状态:当活动不在栈顶时,但活动仍然可见,这时活动属于暂停状态,比如活动A调用了一个对话框形式的活动,该活动还未占满屏幕,这时活动A就是暂停状态。
3.停止状态:当一个活动不在栈顶且不可见时,就进入了停止状态。
4.销毁状态:当一个活动从返回栈中移除后就变成了销毁状态。
Activity类中的7个回调方法: protected
1.onCreate():活动初始化
2.onDestroy():活动销毁前调用
3.onStart():活动由不可见变为可见时调用
4.onStop():活动完全不可见时调用
5.onResume():活动返回栈顶
6.onPause();启动或恢复另一个活动时候调用
7.onRestart():活动重新被启动。
活动的启动模式
1.standard:默认启动模式,每次启动活动都会创建一个新的活动
2。singleTop:若活动在栈顶时,再调用这个活动就不需要重新创建一个活动,但若不在栈顶,就还是需要
3.singleTask:若返回栈中有这个活动,启动这个活动就不需要重新创建一个活动,但会销毁所要启动活动栈中上面的所有活动。
4.singleInstance:启动这个模式的活动,,会创建一个独立的栈专门管理这个活动。
知晓当前是在哪个活动
public class BaseActivity extends Activity {
//该代码是为了让自己更好的根据当前界面知道当前是在哪个活动
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Log.d("BaseActivity",getClass().getSimpleName());}
主要就是通过创建这个类,然后让所有的类都继承这个类,再用getClass。getSimpleName()的方法来获取当前活动名。
随时退出程序
好像就是一个退出功能
public class ActivityCollector {
public static List<Activity>activities =new ArrayList<Activity>();
public static void addActivity(Activity activity){
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();
}
}
}
}
启动活动的最佳写法
在要启动的方法写一个启动自己的静态方法,再在当前活动通过类名+方法名启动要启动的方法
//启动SecondActivity的方法,方便别的活动调用和传递数据
public static void actionStart(Context context,String data1,String data2){
Intent intent = new Intent(context,SecondActivity.class);
intent.putExtra("paraml1",data1);
intent.putExtra("paraml2",data2);
context.startActivity(intent);
}
方便对接,让别人更加容易知道你要传递的参数是什么