首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android学习笔记(三)Application简介

通过继承Application,可以完成一下3项工作:   · 对Android运行时广播应用程序级事件做出相应。   · 在应用程序组件之间传递对象。   ...· 管理维护多个应用程序组件使用资源。   其中,后两项工作通过使用一个单态能够更好地完成。Application实现在本质上是单态,并应作为单态实现,以便提供对其方法成员变量访问。...传递变量方式有很多种,(:Intent传参),但就像有些常用状态变量:用户userId),如果每次得通过Intent方式传来传去的话,很容易导致逻辑混乱,那么这时候我们就可以将这个常用公共变量保存到...下面以一个简单例子来说明一下通过Application达到共享变量效果:   示例说明:创建两个Activity,用其中一个Activity改变Application中变量,然后在另一个Activity...可通过重写此方法来实例化应用程序单态,以及创建和实例化任何应用程序状态变量共享资源。   · onLowMemory: 当系统处于资源匮乏状态是,具有良好行为应用程序可以释放额外内存。

74350
您找到你想要的搜索结果了吗?
是的
没有找到

【Android 组件化】路由组件 ( 路由框架概述 )

生成路由表 ) 【Android 组件化】路由组件 ( 组件间共享服务 ) 【Android 组件化】路由组件 ( 生成 Root 记录模块中路由表 ) 【Android 组件化】路由组件 (...; 在组件模式时 , 由于没有直接引用其它模块 , 独立运行时 , 也可以单独编译运行 ; 完整组件化项目 , 有一个主应用 , 若干 Library 依赖库 , 主应用 需要 依赖这些 Library...") public class MainActivity extends Activity { @Override protected void onCreate(@Nullable Bundle...); } } 注解处理器 在编译时 , 自动生成如下 路由表 , 下面的对应是 app 路由分组对应路由表 , 用于管理 路由表中 路由节点 ; package kim.hsl.router...init 方法 , 通过调用 注解处理器 编译时 生成 路由分组表 , Root 表 , 获取路由信息 ; 具体如何在 运行时 获取路由表 , 参考 【Android 组件化】路由组件 ( 运行时获取

48510

Android:这是一份全面 & 清晰易懂Application使用指南

本文将全面解析Applicaiton,包括特点、方法介绍、应用场景具体使用,希望你们会喜欢。 ---- 目录 ? ---- 1....是单例模式(singleton) 也可通过 继承 Application 自定义Application 实例 2.2 实例形式:全局实例 即不同组件(Activity、Service)都可获得...3.1 onCreate() 调用时刻: Application 实例创建时调用 Android系统入口是Application onCreate(),默认为空实现 作用 初始化 应用程序级别...资源,全局对象、环境配置变量、图片资源初始化、推送服务注册等 注:请不要执行耗时操作,否则会拖慢应用程序启动速度 数据共享、数据缓存 设置全局共享数据,全局共享变量、方法等...应用场景 从Applicaiton方法可以看出,Applicaiton应用场景有:(已按优先级排序) 初始化 应用程序级别 资源,全局对象、环境配置变量等 数据共享、数据缓存,设置全局共享变量

1.1K20

Android:全面解析熟悉而陌生 Application 使用

本文将全面解析Applicaiton,包括特点、方法介绍、应用场景具体使用,希望你们会喜欢。 目录 ? 1....(singleton) 也可通过 继承 Application 自定义Application 实例 2.2 实例形式:全局实例 即不同组件(Activity、Service)都可获得Application...3.1 onCreate() 调用时刻: Application 实例创建时调用 Android系统入口是Application onCreate(),默认为空实现 作用 初始化 应用程序级别 资源...,全局对象、环境配置变量、图片资源初始化、推送服务注册等 注:请不要执行耗时操作,否则会拖慢应用程序启动速度 数据共享、数据缓存 设置全局共享数据,全局共享变量、方法等 注:这些共享数据只在应用程序生命周期内有效...应用场景 从Applicaiton方法可以看出,Applicaiton应用场景有:(已按优先级排序) 初始化 应用程序级别 资源,全局对象、环境配置变量等 数据共享、数据缓存,设置全局共享变量

1.7K50

Carson带你学Android:这是一份全面 & 清晰Application使用指南

(singleton) 也可通过 继承 Application 自定义Application 实例 2.2 实例形式:全局实例 即不同组件(Activity、Service)都可获得Application...下面,我将介绍Application 方法使用 3.1 onCreate() 调用时刻: Application 实例创建时调用 Android系统入口是Application onCreate...(),默认为空实现 作用 初始化 应用程序级别 资源,全局对象、环境配置变量、图片资源初始化、推送服务注册等 注:请不要执行耗时操作,否则会拖慢应用程序启动速度 数据共享、数据缓存 设置全局共享数据...,全局共享变量、方法等 注:这些共享数据只在应用程序生命周期内有效,当该应用程序被杀死,这些数据也会被清空,所以只能存储一些具备 临时性共享数据 具体使用 // 复写方法需要在Application...应用场景 从Applicaiton方法可以看出,Applicaiton应用场景有:(已按优先级排序) 初始化 应用程序级别 资源,全局对象、环境配置变量等 数据共享、数据缓存,设置全局共享变量

56810

Android点将台:你敢摸我猫

", ": "+CatManager.cat.color);//null |--- 说明在MainActivity1里已经初始化静态成员变量无法在MainActivity2(另一个进程)使用 |-...新建一个Cat(猫)CatManager(铲屎官) ---->[Cat]------------------------------------ public class Cat {...[6].使用Socket: 可以通过网络传输字节流,支持一对多并发实时通信 0.现在CatManagerCat 既然单例不能用,就不用。...,IPC 通信完成 2.IPC之文件共享进行通信 把对象写入文件,然后通过文件反序列化出对象,给MainActivity2 (文件读写无论是效率还是多线程不行,所以这里只是了解一下) ---...4-1:定义接口:ICatService 简单一点,就定义一个喂养方法 4-2:自动生成 之间关系基本如下: package com.toly1994.ipc; public interface

73930

Android面试题之Kotlin Jetpack三大核心组件

ViewModel LiveData 是 Android Jetpack 组件库中两个核心组件,它们能帮助开发者更有效地管理 UI 相关数据,并且能够在配置变更(屏幕旋转)时保存恢复 UI...ViewModel作用 瞬态数据丢失恢复,比如横竖屏 异步调用内存泄漏 处理膨胀提高维护难度测试难度 使视图和数据能够分离 是介于视图View和数据Model之间桥梁 LiveData作用...用于ViewModel数据返回时通知View更新,是ViewModelView之间桥梁 那么如何在 Kotlin 中正确优雅地使用 ViewModel LiveData 呢。...创建 ViewModel ViewModel 用于存储管理与 UI 相关数据,它能在配置变更时继续存在。...Lifecycle Jetpack 组件中 Lifecycle 是一个用于管理观察 Android 组件( Activity、Fragment)生命周期库。

4510

android之存储篇_ContentProvider存储

ContentProvider是安卓平台中,在不同应用程序之间实现数据共享一种机制。一个应用程序如果需要让别的程序可以操作自己数据,即可采用这种机制。...对于第三方应用程序,为了保证URI标识唯一性,它必须是一个完整、小写 名。.../name”中name     D:如果URI中包含表示需要获取记录ID;则就返回该id对应数据,如果没有ID,就表示返回全部;   下面通过是代码示例,演示一下如何在应用之间相互获取数据。   ...public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState...B程序结构,其并没有任何数据库用于存储数据。

51510

如何使用MVP+Dagger2+RxJava+Retrofit开发(1)

Component--Components从根本上来说就是一个注入器,也可以说是@Inject@Module桥梁,它主要作用就是连接这两个部分。...Components可以提供所有定义了类型实例,比如:我们必须用@Component注解一个接口然后列出所有的@Modules组成该组件, 果缺失了任何一块都会在编译时候报错。...inject(MainActivity mainActivity); } 4.修改MainActivity代码-成员变量注入与注入MineFragment @Inject MinePresenter...总结 创建module,一般应用于第三方包对象或者应用对象 创建Component,依赖注入器,复杂把注入对象注入到注解成员变量 构造方法注入:在构造方法前面注释@Inject 成员变量注入:...在成员变量(非私有)前面注释@Inject 开始注入调用注射器Inject方法 详解Dagger2 Android官方MVP架构示例项目解析 dagger2 让你爱不释手

1.5K80

kotlin-android-extensions插件也被废弃了?扶我起来

虽然也有一些诸如ButterKnife之类第三方库,专门用于对findViewById用法进行简化,但是ButterKnife还是要通过注解来让控件与资源id之间进行绑定,并不算是非常方便。...当然这个我认为并不是主要原因,因为现在Google开发各种新技术都在全面兼容Kotlin,而不再怎么去考虑Java了,协程、Jetpack Compose等。 那么主要原因是什么呢?...当然,如果你需要在onCreate()函数之外地方对控件进行操作,那么就得将binding变量声明成全局变量,写法如下: class MainActivity : AppCompatActivity(...onCreateView()函数onDestroyView()函数之间。...接下来我们开始分别学习如何在includemerge布局中使用ViewBinding。 先来看include,这个情况比较简单。

2.7K31

Dagger2 Android依赖注入学习笔记

用到这个,因此MainActivity中变含有这个成员变量,有了这个成员变量aaa,我们就要对它进行实例化,因此会有以下代码: /** * @author chaochaowu * @Description...我们可以发现MainActivity没有任何有关aaa初始化赋值,但是它还是可以调用其get()方法。这样我们就达到了解耦合目的。...就会变得臃肿,如果 AAA 初始化参数变了,不仅 AAA 需要改,MainActivity 因为它与AAA耦合也要跟着改变,如果 AAA 不止用在 MainActivity 中还用在了其他...@Component @Component用于标注接口,是依赖需求方(MainActivity依赖提供方(AAA)之间桥梁。...build后生成.png 我们利用其中 DaggerMainActivityComponent 进行 MainActivity 与 AAA 之间桥梁搭建。

64830

Android 中 ThreadLocal使用示例

该段文字描述了ThreadLocal用途: 1.对于同一个变量(即ThreadLocal中保存变量)对于不同线程其值是不同. 2 所有线程共享一个ThreadLocal对象,但是访问ThreadLocal...ThreadLocal使用在Looper中得到很好体现.保证了每个线程一个Looper一一对应,并且每个Looper之间不受影响....* 2 所有线程共享一个ThreadLocal对象,但是访问ThreadLocal对象中变量时得到不同值 * 3 某个线程修改了ThreadLocal对象中变量值时不会影响到其他线程....* * * ThreadLocal使用在Looper中得到很好体现.保证了每个线程一个Looper一一对应,并且每个Looper之间不受影响....ThreadLocal存储变量修改没有影响到ThreadLocal存主线程变量 System.out.println("ThreadLocal保存主线变量值:"+mThreadLocal.get

60020

Android 增加JNI

今天我们先介绍JNI与NDK之间区别,手把手进行NDK使用教学,希望你们会喜欢; 目录: 1....,并自动将so应用一起打包成 APK 即可通过NDK在 Android中 使用 JNI与本地代码(C、C++)交互 应用场景:在Android场景下 使用JNI 即 Android开发功能需要本地代码...在Gradlebuild.gradle添加ndk节点 至此,将Andorid Studio项目 与 NDK 关联完毕 下面,将真正开始讲解如何在项目中使用NDK 步骤3:创建本地代码文件 即需要在... JNICALL不能省 关于方法名Java_scut_carson_1ho_ndk_1demo_MainActivity_getFromJNI 格式 = Java _包名 _ 名_Java需要调用方法名...$(BUILD_SHARED_LIBRARY) // 指定生成静态库或者共享库在运行时依赖共享库模块列表。

1.5K40

Java——设计辅助概念(final关键字、对象多态性基本概念)

1、final关键字 final别名 终结器,意思是用final定义不能有子类,用final定义方法不能被覆写,用final定义变量就成为了常量,其无法修改。...如果开发中使用了public static final 定义,就是全局常量,该定义在实际开发中使用非常频繁,我们开发时只要是常量定义都使用大写字母描述,养成一个好习惯,以变量进行区分。...开发中都要求继承抽象接口,本节主要讲也只是概念。 多态性要想实现有前提:继承、覆写。 【举例】:覆写调用前提是,看new是哪个对象,再看方法是否被子类覆写。...,两个没有关系对象发生了强制转换所导致。...,但是向下转型必须实现了向上转型,其存在安全隐患,向下转型前可以使用instanceof进行判断; 不转型(9%):为了方便操作直接使用系统或一些功能:String、简单Java等。

40420

Android进阶-NDK技术

确实如此,用一句话概括它们之间关系就是:开发者使用NDK技术在Android应用程序中编写C/C++代码,并将其编译成共享库(.so文件),然后使用JNI技术在Java代码中加载并与这些C/C++代码进行交互...第二点的话就是C/C++语言可以直接访问底层系统功能硬件资源,摄像头传感器等,这是Java做不到。..."Hello from C++"字符串     我们发现这个函数名特别长,其实就是对应java目录下com.example.ndkstudy包下MainActivitystringFromJNI(...包下,MainActivity下进行操作,也就是要对应那个特别长函数名。...二.Java类型C类型转换   在JNI开发中,Java类型C/C++类型之间需要转换,因为二者之间数据类型存在差异,转换桥梁正是JNI类型。

36330

Android应用界面开发——简单控件Activity间传递数据

当Activity被onStop后,但是没有onDestroy,在再次启动此Activity时调用onRestart(而不再调用onCreate)方法。...Activity之间也可以传递对象,传递对象需要进行序列化。...:加载网页 ListView:显示列表 GridView:显示表格式列表 ScrollView:内容可滚动视图 SufaceView:非常重要绘图容器 针对比较常用控件一Activity之间传递数据写了一个小...:名或接口名提示 Ctrl + P:方法参数提示 Ctrl + Shift + Alt + N:查找方法或变量 Ctrl + H:显示结构图 Ctrl + D:复制行 Ctrl + Q:显示注释文档...+ F12:可以显示当前文件结构 Ctrl + Alt + C:将变量更改为常量 Ctrl + Alt + F:提取全局变量

1.8K30

android学习笔记----关于findViewById那些事

); } } 尽管 findViewById 方法在这个MainActivity没有声明,但其实在父 AppCompatActivity 声明过了,setContentView 也是这样,...当你点击设备上应用图标 就打开了 MainActivity,在我们代码中 MainActivity onCreate 方法被系统调用,在这个方法中有一个 setContentView 方法,它是资源布局...为了在应用运行时能与这些视图进行交互并且修改它们,例如修改文本或者修改按钮,那么我们需要找到 Java 对象,一旦我们找到它们,我们可以在 MainActivity 中用引用指向它们,记住,我们没有创建新...但是我们还是不知道如何建立变量具体 Java 对象之间联系,对于这个变量 Java 对象 情况也是如此,在AppCompatActivity 中,有一个具体方法就是调用 findViewById...setVisibility 方法,可以看到 setVisibility 是 View 一个方法,所以这是一个有效调用,没有必要转化成 TextView 格式,因为我们调用方法是 View

27910
领券