https://blog.csdn.net/lyhhj/article/details/53889223 1.前言 昨天谈了BaseActivity的封装, Android谈谈封装那些事–BaseActivity
封装之路 (二)BaseActivity 目标 :作为封装,实现BaseActivity,基于Dagger2+Databinding的模式。...当前主要实现基础的框架,后期慢慢加入其他,像Toast之类的,直接疯转在外部控件之列,不在BaseActivity里面,使得BaseActivity尽可能的清晰一些。...自定义Activity,继承BaseActivity即可,实现它的三个抽象方法。 getLayoutId,返回Layout值即可,比如R.layout.main这种。
好了,今天我们先来聊聊自己在项目中以及参考大神们的代码怎么来封装自己的BaseActivity和BaseFragment。 怎么封装?...本着这个原则所以才有了下面的BaseActivity和BaseFragment。...BaseActivity封装 BaseEventActivity 事件总线基类 BaseParentActivity 注解绑定基类 BaseStatusBarActivity 通知栏沉浸基类...; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore...; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.View
* * @author xqx * @emil djlxqx@163.com * create at 2017/6/12 * description: 管理activity的类 */ import android.app.Activity...; import android.app.ActivityManager; import android.content.Context; import java.util.Stack; public...context.getPackageName()); System.exit(0); } catch (Exception e) { } } } 二、BaseActivity...://www.cnblogs.com/xqxacm/ * createAt 2017/06/13 * description: 基础类, 对Activity 的管理 */ public class BaseActivity
管理所有activity 方便退出 public class BaseActivity extends ActionBarActivity { // 管理运行的所有的activity public...final static List mActivities = new LinkedList();//增删快 //使用广播也可以,如果当前Activity...(BaseActivity activity : copy) { activity.finish(); } // 杀死当前的进程 android.os.Process.killProcess...(android.os.Process.myPid()); } protected void initActionBar() { } protected void initView() { }...menu) { getMenuInflater().inflate(R.menu.activity_main, menu); // 如果运行的环境 (部署到什么版本的手机 )大于3.0 if (android.os.Build.VERSION.SDK_INT
同步的用法 字符数组 工厂模式,生产fatgment,解决了碎片重复创建的问题 全局上下文 actionbar用法 fargmentadapter,当viewpager里是fargment的话更方便 1.抽取BaseActivity...管理所有activity 方便退出 public class BaseActivity extends ActionBarActivity { // 管理运行的所有的activity...public final static List mActivities = new LinkedList();//增删快 //使用广播也可以...// 杀死当前的进程 android.os.Process.killProcess(android.os.Process.myPid()); } protected void...menu) { getMenuInflater().inflate(R.menu.activity_main, menu); // 如果运行的环境 (部署到什么版本的手机 )大于3.0 if (android.os.Build.VERSION.SDK_INT
例子: 在App开发中,不管是iOS还是Android,我们每一个界面控制器都会有着很多相同的方法,例如:初始化界面、初始化数据、设置相同的主题等等操作。...1.2、定义算法框架,修改BaseActivity基类 public abstract class BaseActivity extends AppCompatActivity { @Override...2、模板方法模式实现 2.1、修改BaseActivity类 public abstract class BaseActivity extends AppCompatActivity { @...:建造者模式——学习使用“链式调用” 简易理解设计模式之:原型模式——深、浅拷贝的概念 简易理解设计模式之:单例模式——单例模式的几种常用写法 结构型模式: 简易理解设计模式之:适配器模式——Android...简易理解设计模式之:享元模式——五子棋游戏例子 简易理解设计模式之:代理模式——iOS视图控件设计方式 行为型模式: 简易理解设计模式之:策略模式——优化一下支付功能 简易理解设计模式之:模板方法模式——Android
如果是只有一个Activity的App就没有必要写BaseActivity,但一旦大于一个我还是建议写一个BaseActivity,准没错。...每个Activity通常都是绑定视图,绑定控件,监听控件,获取Bundle,跳转Activity还有一些很有些烦人的小功能如:Toast,findViewById,我们都可以封装一层简化他们的使用 BaseActivity...的代码如下: public abstract class BaseActivity extends Activity implements View.OnClickListener { /** 是否沉浸状态栏...> clz) { startActivity(new Intent(BaseActivity.this,clz)); } /** * [携带数据的页面跳转] * * @param clz * @...的Activity使用如下: ---- public class MainActivity extends BaseActivity { private Button btn1; @Override
昨天在比赛中,比赛的基类使用了 BaseActivity 实现抽象模板类。所以做个记录吧。 实现的写法很简单。...附下面代码 模板类的写法,具体注释一看就懂 public abstract class BaseActivity extends FragmentActivity { @Override...public class MainActivity extends BaseActivity { @Override protected int getLayoutId() {...这里解释为什么BaseActivity要继承自FragmentActivity? 可以看见AppCompatActivity是继承于FragmentActivity....FragmentActivity 继承自Activity,用来解决Android 3.0之前无法使用Fragment的问题,所以在使用的时候需要导入android-support-v4.jar兼容包,同时继承
线索2+线索3 -> Crash的触发操作:第一次创建Activity对象(BaseActivity是所有Activity的基类) 结论:根本原因在于推论1:“BaseActivity类之前初始化失败过...顺着这个方向,我们查了BaseActivity.java文件svn的提交记录,近期并没有修改。...---- 偶然发现重要线索 BaseActivity.java类近期无修改,且常规测试也不能重现BaseActivity类初始化失败的场景,问题再次陷入僵局。...com.example.assistant.activity.BaseActivity.(ProGuard:750) ?...子类,不会导致在非主线程中加载BaseActivity类) 修复BaseActivity中存在的潜在风险,将静态成员 ?
探究Android活动的小技巧 1.找出当前的活动 当我们在查看别人的代码的时候可能不能第一眼就发现首次的活动是哪一个,我们可以通过以下的方法来找出当前的主活动是哪一个: 新建一个BaseActivity...; public class BaseActivity extends AppCompatActivity{ private static final String TAG = "BaseActivity...android.util.Log; public class BaseActivity extends AppCompatActivity{ private static final String...TAG = "BaseActivity"; @Override protected void onCreate( Bundle savedInstanceState) {...; public class ThirdActivity extends BaseActivity { private static final String TAG = "ThirdActivity
文章目录 总结 一、Android 布局依赖注入步骤 二、Android 布局依赖注入示例 1、创建依赖注入库 2、声明注解 3、Activity 基类 4、依赖注入工具类 5、客户端 Activity...; 一、Android 布局依赖注入步骤 ---- 正常控制 : Android 中加载布局操作 , 由自己的 Activity 类加载布局 ; 控制反转 : Android 中加载布局操作 , 由...第三者 加载 Activity 布局 ; Android 布局依赖注入步骤 : ① 客户端 Activity : 定义 MainActivity , 继承 BaseActivity ; ② IOC 库中的...Activity 父类 : 定义 BaseActivity , 在 BaseActivity 中的 onCreate 方法中 , 处理依赖注入相关逻辑 ; ③ 依赖注入逻辑 : 获取 Activity...; import android.os.Bundle; import androidx.annotation.Nullable; public class BaseActivity extends
Android 插件化系列文章目录 【Android 插件化】插件化简介 ( 组件化与插件化 ) 【Android 插件化】插件化原理 ( JVM 内存数据 | 类加载流程 ) 【Android 插件化...资源 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 运行应用 | 代码整理 ) ---- 文章目录 Android 插件化系列文章目录 前言 一、BaseActivity 注入上下文的使用...二、BaseActivity 完整代码 三、博客资源 总结 ---- 前言 参考 【Android 插件化】“ 插桩式 “ 插件化框架 ( 原理与实现思路 ) 中给出的实现思路 , 逐步实现 “ 插桩式..., 插件 Activity 中的相关功能都要使用 BaseActivity 中被注入的上下文进行代理操作 ; ---- 一、BaseActivity 注入上下文的使用 在上一篇博客 【Android...完整代码 BaseActivity 完整代码 : package com.example.plugin_core; import android.annotation.SuppressLint; import
java.lang.NoClassDefFoundError 堆栈还原: java.lang.NoClassDefFoundError: com/example/assistant/activity/BaseActivity...Activity对象(BaseActivity是所有Activity的基类) 结论:根本原因在于推论1:“BaseActivity类之前初始化失败过”。...顺着这个方向,我们查了BaseActivity.java文件svn的提交记录,近期并没有修改。...---- 偶然发现重要线索 BaseActivity.java类近期无修改,且常规测试也不能重现BaseActivity类初始化失败的场景,问题再次陷入僵局。...子类,不会导致在非主线程中加载BaseActivity类) 修复BaseActivity中存在的潜在风险,将静态成员 2015-09-30: 问题解决啦,国庆的3倍也顺利逃过啦 ---- 灰度验证
> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res.../android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com.../tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context...=".MainActivity"> <TextView android:id="@+id/tv_hello" android:layout_width="wrap_content..." android:layout_height="wrap_content" android:text="Hello World!"
知晓当前在哪个活动 创建一个BaseActivity 类继承Activity 在onCreate 中输出类名 public class BaseActivity extends AppCompatActivity...{ private static final String TAG = "BaseActivity"; @Override public void onCreate(Bundle...public class BaseActivity extends AppCompatActivity { private static final String TAG = "BaseActivity...} 在什么时候退出程序 只需要调用ActivityCollector.finishAll()方法 可以在销毁所有活动后加上杀掉进程代码 ActivityCollector.finishAll(); android.os.Process.killProcess...(android.os.Process.myPid());
文章目录 总结 一、Android 视图依赖注入步骤 二、Android 布局依赖注入示例 1、创建依赖注入库 2、声明注解 3、Activity 基类 4、依赖注入工具类 5、客户端 Activity..., 继承 BaseActivity , 在属性字段上使用 @BindBiew 注解注入视图 ; ③ IOC 库中的 Activity 父类 : 定义 BaseActivity , 在 BaseActivity...布局依赖注入示例 ---- 1、创建依赖注入库 首先在 Android 应用中 , 创建一个 " Android Library " , 设置主应用依赖该 Android 依赖库 : dependencies...; import android.os.Bundle; import androidx.annotation.Nullable; public class BaseActivity extends...; import android.widget.TextView; import kim.hsl.ioc_lib.BaseActivity; import kim.hsl.ioc_lib.BindView
你不能改三方库的 Activity 所以你只有改你的 BaseActivity 让它去继承三方库的 Activity,但是当改了 BaseActivity 后,发现有很多继承于 BaseActivity...,所以我不仅提倡 App 开发者少封装 BaseActivity 少用继承,也提倡 三方库 开发者少封装 BaseActivity 少用继承,为什么呢?...BaseActivity 通过继承来实现一些 Activity 的公共逻辑,而不能将公共逻辑封装到其他类里面?...你还在通过继承 BaseActivity 在 BaseActivity 的 onCreate 中将这个 Activity 加入集合???...中通过继承才能达到的功能,发现没有 BaseActivity ,也并没有什么不舒服的地方,突然感觉自己好牛逼 ?
/com.google.android.apps.nexuslauncher.NexusLauncherActivity} baseActivity= ComponentInfo{com.google.android.apps.nexuslauncher.../com.google.android.apps.nexuslauncher.NexusLauncherActivity} baseActivity= ComponentInfo{com.google.android.apps.nexuslauncher.../com.google.android.apps.nexuslauncher.NexusLauncherActivity} baseActivity= ComponentInfo{com.google.android.apps.nexuslauncher.../com.google.android.apps.nexuslauncher.NexusLauncherActivity} baseActivity= ComponentInfo{com.google.android.apps.nexuslauncher.../com.google.android.apps.nexuslauncher.NexusLauncherActivity} baseActivity= ComponentInfo{com.google.android.apps.nexuslauncher
领取专属 10元无门槛券
手把手带您无忧上云