第一次被创建时调用,初始化操作如加载布局绑定事件。
onStart()活动由不可见变为可见时调用。
onResume()活动准备好和用户交互时调用,一般此时活动处于任务栈栈顶。
onPause()在系统准备启动或者恢复另一个活动时调用,通常在这个方法中将一些消耗CPU的资源释放掉,以及保存一些关键性数据。这里的方法一定要运行速度很快不然会影响栈顶的活动调用。
onStop()在活动变成完全不可用时调用,界面被其他界面完全覆盖时调用,如果是提示框对话框这种不完全覆盖的只会调用前面的onPause().
onRestart()活动由停止状态变为启动状态时调用。
onDestory()在活动被销毁前调用,在此方法执行后活动被销毁。
附除onRestart()外其他的两两配对。
启动模式(附onNewIntent()的调用) 在AndroidMainifest的Activity配置进行设置onNewIntent()
在onResart()前调用,setIntent(intent),可刷新intent的值。创建新的活动时候onNewIntent()不会被调用,活动被复用的时候onNewIntent()会被调用。
Stander默认的启动模式,每次都回创建新的活动放置到栈顶。
onNewIntent()无论何时都不会被调用。
只要活动在栈顶就会直接启动,此时onNewIntent()会被调用。如果不在栈顶就会创建新的活动,此时onNewIntent()就不会被调用。
SingleTask只要活动在栈中存在,就会把该活动栈在活动以上的所有栈出栈,然后启动并调用该活动,此时onNewIntent()也会被调用。如果不存在活动那个的话就会创建新的栈和活动,可指定栈此时onNewIntent()就不会被调用。
SingleInstance创建新的返回栈将活动放在新的返回栈中。便于解决不同应用程序共享该活动实例的情况。创建的时候不会调用onNewIntent()。
Intent启动器 显式推荐在对应的Activity中创建该活动的显式启动,这样减少程序见的耦合,也方便控制参数的定制获取。
public static void StartActivity(Context context, String data1){
Intent intents = new Intent(context,FirstActivity.class);
intents.putExtra("data1",data1);
context.startActivity(intents);
}
隐式
隐式启动的话有3个过滤器,action、category、data。
Action、Category:
Intent intent = new Intent("android.intent.action.SHOW_APP_INFO");
intent.addCategory("android.intent.category.DiaLog");
startActivity(intent);
String url = "router://book/login"; Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PackageManager packageManager = getPackageManager(); Listactivities = packageManager.queryIntentActivities(intent, 0); if (activities != null) { startActivity(intent); }
附 Activity可设定为Dialog格式:
自定义Activity父类
父类中创建了清除所有Activity的方法>>>结合点击事件等使用可实现一键退出程序的功能。
public class baseActivity extends AppCompatActivity {
public static List Activity_All = new ArrayList();
public static final String TAG = "baseActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Activity_All.add(this);
Log.d(TAG,this.getClass().getSimpleName());
}
protected static void CancelAllActivity(){
for (Activity activity:Activity_All
) {
if (!activity.isFinishing())
activity.finish();
}
Activity_All.clear();
}
}
标题栏
自定义:
首先清除系统自带的标题栏:
Theme中


