- 博客(26)
- 收藏
- 关注
原创 一文搞懂Java泛型
Java中的泛型想必大家都不陌生,我们在创建使用 ArrayList 数组的时候,往往需要传递一个明确的参数类型。然而,往往大多数程序员对泛型的理解也仅仅局限在限制类型,以及查看源码时对一大堆泛型类和泛型方法的使用不明觉厉。迟迟没有下定决心和花时间去了解。
2024-11-21 16:37:10
775
原创 Android开发——APP开机自启动
Android 系统在开机启动完成后会发送一个 ACTION_BOOT_COMPLETED 的广播,在收到该广播后,我们可以启动指定的应用程序。(收到ACTION_BOOT_COMPLETED 广播后也可以添加延时来实现延时启动)防止APP安装到外部存储空间导致无法启动。最后,设备关机重启就可以了。注册静态广播接收器。
2024-11-15 16:55:15
2397
转载 Android设计模式——建造者模式
设计是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性好。我们使用设计模式最终的目的是实现代码的高内聚和低耦合。## 建造者模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示;用户只需指定需要建造的类型就可以得到它们,而不需要建造过程及细节。
2023-12-08 17:12:02
123
转载 Android设计模式——策略模式
设计是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性好。我们使用设计模式最终的目的是实现代码的高内聚和低耦合。## 观察者模式定义一系列的算法,把每一个算法封装起来,并且使它们可相互替换。策略模式模式使得算法可独立于使用它的客户而独立变化。(如:当有许多的if else 的时候,就可以考虑使用策略模式来处理)
2023-12-07 13:50:42
267
原创 Android设计模式——观察者模式
设计是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性好。我们使用设计模式最终的目的是实现代码的高内聚和低耦合。多个观察者同时监听某一个主题对象,当主题对象发生变化时,它的所有观察者都会收到通知并更新。
2023-12-06 18:39:02
111
原创 Android设计模式——代理模式
设计是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性好。我们使用设计模式最终的目的是实现代码的高内聚和低耦合。提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。而代理对象在客户端和目标对象之间起到中介作用。
2023-12-05 14:16:59
93
原创 Android设计模式——工厂模式
设计是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性好。我们使用设计模式最终的目的是实现代码的高内聚和低耦合。解决的就是对象创建的问题,把建立对象实例交给子类来进行。换言之,就是把建立对象实例的过程从正常的业务逻辑中剥离出去,通过抽象来实现。1.工厂类负责创建的对象比较少;2.客户端(应用层)只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心。
2023-12-01 17:05:41
130
原创 Android设计模式——单例模式
设计是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性好。我们使用设计模式最终的目的是实现代码的高内聚和低耦合。确保一个类只有一个实例,并提供了一个全局访问点来访问该实例。
2023-11-13 16:34:22
124
原创 Android Studio添加常用快捷工具图标
Android Studio添加常用快捷工具图标操作流程File->Settings->Appearance->Menus and Toolbars->Navigation Bar Toolbars->Toolbar Run Actions->点击“+”添加 常用图标(如:undo)即可,上下移动调整按键位置。...
2022-02-22 18:12:28
2389
原创 Android开发学习---Interface的使用
Android开发学习—Interface的使用使用情景:当我们需要调用某些方法进行延时操作并需要在操作结束后返回结果(例如:下载文件等)。接下来举一个简单的例子方便大家理解Interface的用法。情景:你在上课,但是你的快递到了。此时你打电话告诉你舍友并希望如果他在拿到快递后立马告诉你结果。代码如下:1.定义接口 onTakeExpressCallbackpublic interface onTakeExpressCallback { void success(String messa
2020-12-11 16:07:58
1240
1
原创 Android开发学习---SQLite 数据库的使用
一.创建数据库public class MyDatabaseHelper extends SQLiteOpenHelper { public static final String CREATE_BOOK = "create table book (" + "id integer primary key autoincrement, " + "author text, " + "price real, "
2020-06-16 11:50:24
384
原创 Android开发学习--- 自定义控件使用
控件和布局的继承结构:在使用自定义控件之前,首先我们需要知道Android UI的控件和布局的继承结构。如下图所示:可以看到,我们所用的所有控件都是直接或间接继承自 View 的,所用的所有布局都是直接或间接继承自 ViewGroup 的。View 是 Android 中一种最基本的 UI 组件,它可以在屏幕上绘制一块矩形区域,并能响应这块区域的各种事件,因此,我们使用的各种控件其实就是在 View 的基础之上又添加了各自特有的功能。而 ViewGroup 则是一种特殊的 View,它可以包含很多
2020-06-15 11:49:05
755
原创 Activity实践 ---活动管理类工具
使用情景:当你在多个Activity进行跳转,由于在任务栈(Task)中创建了多个任务项,因此退出程序往往需要多次点击返回键。那么有没有一种方式可以做到无论进入那个界面都能随时退出程序呢?其实解决思路也很简单,只需要用一个专门的集合类对所有的活动进行管理就可以了,下面我们就来实现一下。新建一个 ActivityCollector 类作为活动管理器,代码如下所示:public class ActivityCollector { public static List<Activity>
2020-06-15 10:42:09
245
原创 Activity实践---知晓当前活动位置
使用情景:当你进入工作后,常常要接手别人的代码,搞不清项目结构的你可能会一头雾水。此时,当你想修改某个UI或是某个功能时往往会因为找不到Activity而无从下手。首先需要新建一个 BaseActivity 继承自Activity,然后在 BaseActivity 中重写 onCreate()方法,如下所示:public class BaseActivity extends Activity { @Override protected void onCreate(Bundle save
2020-06-15 10:19:06
175
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人