![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 54
qq_45923275
这个作者很懒,什么都没留下…
展开
-
Activity启动流程
Activity启动流程原创 2022-08-26 11:02:23 · 442 阅读 · 1 评论 -
自定义View之绘制流程
BitMap BitMap在Android中表示已经加载好的图片资源,原创 2022-05-17 10:27:05 · 673 阅读 · 0 评论 -
ViewModel
viewModel是实现mvvm架构的重要组件,主要用于解决两个问题,一是减轻Actiyity/Fragment的负担,在传统的架构下Activity需要承担ui展示刷新,逻辑处理和网络回调等等任务,随着项目复杂会变得难以维护,可以用viewModel存放与界面有关的数据和网络请求等等。二是解决横竖屏旋转时Activity重新调用onCreate()方法,会丢失掉原本数据的问题。解决第二个问题的原因是一个ViewModel的生命周期要比它所绑定的Activity长,重新创建的Activity所获得的Vi原创 2022-02-16 16:56:59 · 1508 阅读 · 0 评论 -
Android网络编程之文件上传/下载
这个任务是安卓课程的作业,任务分为两部分,一是搭建web服务器编写相应的处理逻辑,二是安卓客户端发送和接受相应的报文。下载整体思路是先读取要传输的文件,随后以缓冲流的形式写在相应的http报文实体体也就是正文中,接收方将报文以缓冲流读取出来,写在相应的文件位置。先写web服务器,这里为了避免写一堆配置文档直接用spring boot框架。这个Controller注解作用是标记这是一个控制器类,框架中的分发处理器会扫描带有该注解的类标记其为控制器,这里的控制器就和安卓的模型视图控制器模原创 2021-11-15 20:01:50 · 1915 阅读 · 0 评论 -
Android--Notification
Android8.0之后,为了解决app为了提高曝光量不断发送垃圾通知的情况,Google为安卓引入了通知渠道的概念,每一条通知都要属于一个对应的渠道,而不同渠道的通知控制权在用户手中。简单通知演示protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);原创 2021-10-21 15:39:40 · 85 阅读 · 0 评论 -
安卓发起HTTP请求
HTTPURLConnectionpublic class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewBy原创 2021-10-21 15:39:20 · 1818 阅读 · 1 评论 -
WebView套壳浏览器实现
初版方法,直接向webView传入uri加载网页。public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //原创 2021-10-21 15:39:04 · 716 阅读 · 0 评论 -
Service
Service绑定活动public class MainActivity extends AppCompatActivity implements View.OnClickListener{ Service1.DownloadBinder binder; private ServiceConnection connection=new ServiceConnection() { @Override public void onServiceConnect原创 2021-10-18 14:18:40 · 46 阅读 · 0 评论 -
安卓播放音乐视频
播放音频public class MainActivity extends AppCompatActivity implements View.OnClickListener { MediaPlayer mediaPlayer=new MediaPlayer();; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);原创 2021-10-16 21:37:03 · 626 阅读 · 0 评论 -
调用摄像机和读取相册
调用摄像机因为应用读写存储属于危险操作需要申请权限,因此拍摄图片缓存放在应用关联缓存目录下,调用get方法即可获得。随后根据版本状况将File对象转化为Uri对象,放入Intent的参数中,随后调用startActivityForResult方法,在回调方法中刷新ImageView即可。protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);原创 2021-10-15 12:45:32 · 617 阅读 · 0 评论 -
Android异步消息机制
Java多线程https://blog.csdn.net/qq_45923275/article/details/119295978?spm=1001.2014.3001.5502 更新ui的操作推荐交给创建这个ui的原始线程来操作,原因是如果给ui加锁保证它的线程安全性,会降低访问效率,而在线程不安全的ui中通过多个线程进行操作会出现不可控的情况。 安卓推荐使用Handler来实现异步处理,从而规避线程不安全的问题。...原创 2021-10-07 15:35:02 · 140 阅读 · 0 评论 -
ContentResolver
通过ContentResolver可以访问其他应用程序提供的数据接口,获得这个内容提供器调用Context(Activity的究极父类)的getContentResolver方法。之后就能进行CRUD操作了。private void read() { ContentResolver resolver = getContentResolver(); //核心操作,第一个参数是uri,这里使用Phone APP封装好的 Cursor cursor = res原创 2021-10-03 18:11:38 · 181 阅读 · 0 评论 -
Android权限
在Android6.0以前的版本中 ,应用所需的授权信息会在安装时候要求用户授予,这种情况会造成店大欺客的现象,比如微信申请了一大堆权限,作为用户根本不可能拒绝安装,只好乖乖上缴权限,这样对用户的隐私是非常不利的。 不过在之后的系统中安卓开发团队加入了运行时权限的功能,将权限分成了危险权限和普通权限,危险权限必须在使用时申请,经过用户同意才能继续使用,在Android中共有11组30个危险权限,同组权限是一体的。其余的权限则是普通权限,系统会自动授予。 ...原创 2021-10-03 14:36:52 · 113 阅读 · 0 评论 -
安卓持久化技术之SQLite
SQLLite是安卓系统内置的数据库,支持标准的SQL语法和ACID事务原则,具有占据内存小,运算速度快的优点。SQLiteOpenHelper通过SQLiteOpenHelper类可以对数据库进行管理,它是一个抽象类,需要重写OnCreate和OnUpgrade方法来实现数据库的创建升级逻辑。通过getReadableDatabase和getWritableDatabase方法来获取数据库可读写的对象,两者区别在于存储空间满了的时候前者会返回只读数据库,后者则会报错。第一次创建数据库的时候会调原创 2021-10-02 16:37:40 · 169 阅读 · 0 评论 -
安卓持久化技术之SharedPerferences
通过SharedPerferences对象可以以键值对的方式,将数据存储于xml文件中。获取SharedPerferences对象的方式有三种,一是通过这个活动自己的getPreferences方法获得,这样会将存储文件默认命名为活动的名字,第二是通过Context的getSharedPerferences来获得,第三个通过PerferenceManager类的静态函数来获得。//获取文本内容并且存储它 EditText editText=findViewById(R.id.edi原创 2021-10-01 15:50:13 · 111 阅读 · 0 评论 -
安卓持久化技术之文件存储
通过将数据写入文件可以实现持久化,原理是通过Android提供的openFileOutput和openFileInput方法获取输入输出流,然后利用IO方法写入数据。这里通过保存EditView中的数据到文件中,实现下次调用该活动的onCreate方法时重现数据。public class MainActivity extends AppCompatActivity { EditText editText; //获取文件中的数据,逻辑很简单,IO操作一如既往的烦 privat原创 2021-09-30 17:36:25 · 126 阅读 · 0 评论 -
广播Broadcasts
动态注册先吐槽一波,写在代码里面比起xml明明更不容易修改却叫动态注册,挺离谱的就。先示范怎么接受系统广播,在这里是接受网络变化的广播,具体在注释里面仔细看看。public class MainActivity extends AppCompatActivity { private IntentFilter intentFilter; private NetworkReceiver networkReceiver; @Override protected voi原创 2021-09-26 19:10:02 · 76 阅读 · 0 评论 -
自定义控件
引入布局首先自定义布局title:之后在主活动中引入title,并且在加载主活动布局时候隐藏默认标题栏:创建自定义控件以上面的title布局为例子,每次使用都要给按钮写相同的逻辑,会出现大量的代码重复,解决方法就是将title做成自定义控件进行使用。...原创 2021-09-19 18:01:13 · 56 阅读 · 0 评论 -
常用控件和布局
Button默认情况下不能通过background属性改变按钮颜色,需要在res/values/themes.xml改为这样(后面加个.Bridge)EditText使用hint属性指定未输入时提示,使用maxLines规定最大行数。ImageView可以在逻辑中通过setImageResource方法重新指定图片资源。ProgressBar控件的visibility属性用来控制可见性,有三个值:1.visiable可见的2.invisible存在不可见3.go.原创 2021-09-17 15:35:57 · 254 阅读 · 0 评论 -
Activity生命周期
活动回收问题当一个活动执行力onStop方法停止运行进入后台时,如果系统的内存不足就可能对此Activity回收操作,如果用户在该活动写入了数据就会丢失,解决方法是通过Bundle传递保存的内容。活动被摧毁前会执行onSaveInstanceState方法,可以通过键值对的形式将信息保存到传入的Bundle中。在活动的onCreat方法参数中就有Bundle,如果该被回收前通过onSaveInstanceState方法存入数据的话,这个参数就会保存之前存入的所有数据。活动的启动模式..原创 2021-09-16 16:24:19 · 42 阅读 · 0 评论 -
Activity操作
Generate(生成) a Layout File生成默认布局文件Launcher Activity 设置为主活动通过setContentView方法来设置该活动的布局文件设置Layout根元素为LinearLayout,在布局中添加一个按钮取名button_2在androidManifest中注册该活动为主活动设置这个button的响应事件---提示hello。Intent...原创 2021-09-15 10:53:15 · 121 阅读 · 0 评论