123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- package com.yc.ycvideoplayer;
- import android.content.Intent;
- import android.content.pm.ActivityInfo;
- import android.os.Bundle;
- import androidx.annotation.Nullable;
- import androidx.appcompat.app.AppCompatActivity;
- public abstract class BaseActivity extends AppCompatActivity {
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(getContentView());
- //避免切换横竖屏
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
- initView();
- initListener();
- initData();
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- //测试内存泄漏,正式一定要隐藏
- initLeakCanary();
- }
- @Override
- protected void onRestart() {
- super.onRestart();
- }
- @Override
- protected void onResume() {
- super.onResume();
- }
- @Override
- protected void onPause() {
- super.onPause();
- }
- /** 返回一个用于显示界面的布局id */
- public abstract int getContentView();
- /** 初始化View的代码写在这个方法中 */
- public abstract void initView();
- /** 初始化监听器的代码写在这个方法中 */
- public abstract void initListener();
- /** 初始数据的代码写在这个方法中,用于从服务器获取数据 */
- public abstract void initData();
- /**
- * 通过Class跳转界面
- **/
- public void startActivity(Class<?> cls) {
- startActivity(cls, null);
- }
- /**
- * 通过Class跳转界面
- **/
- public void startActivityForResult(Class<?> cls, int requestCode) {
- startActivityForResult(cls, null, requestCode);
- }
- /**
- * 含有Bundle通过Class跳转界面
- **/
- public void startActivityForResult(Class<?> cls, Bundle bundle, int requestCode) {
- Intent intent = new Intent();
- intent.setClass(this, cls);
- if (bundle != null) {
- intent.putExtras(bundle);
- }
- startActivityForResult(intent, requestCode);
- }
- /**
- * 含有Bundle通过Class跳转界面
- **/
- public void startActivity(Class<?> cls, Bundle bundle) {
- Intent intent = new Intent();
- intent.setClass(this, cls);
- if (bundle != null) {
- intent.putExtras(bundle);
- }
- startActivity(intent);
- }
- /**
- * 用来检测所有Activity的内存泄漏
- */
- private void initLeakCanary() {
- /*RefWatcher refWatcher = BaseApplication.getRefWatcher(this);
- refWatcher.watch(this);*/
- }
- }
|