自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 Android实现IPC进程间通信的6种方式 (七)Socket篇

接前六篇基础篇bundle篇文件共享篇Messenger篇AIDL篇ContentProvide篇特别感谢《Android 开发艺术探索》

2019-06-11 14:15:09 1532 1

原创 Android实现IPC进程间通信的6种方式 (六)ContentProvider篇

ContentProvider是Android提供的专用于不同应用间进行数据共享的一种方式,天然适合进程间通信。底层同样是通过Binder实现,但是因为Android系统已经帮我们进行了封装,因此使用起来很简单下来我们就通过创建一个自定义的ContentProvider来实现进程间通信...

2019-06-05 11:12:41 809

原创 Android实现IPC进程间通信的6种方式 (五)AIDL篇

AIDL( Android Interface Definition Language)Android接口定义语言。上篇中的Messenger其实是一种特殊的AIDL,系统帮我们进行了封装,让我们使用起来更方便快捷。但是Messenger是串行处理消息的,不适合大量并发的情况;并且Messenger只能传递数据,客户端不能调用服务端的方法,而这些AIDL都是可以实现的本篇我们来用AIDL实现进程...

2019-05-22 16:36:19 732

原创 Android实现IPC进程间通信的6种方式 (四)Messenger篇

接前三篇基础篇Bundle篇文件共享篇本篇我们来用Messenger实现进程间通信Messenger即信使,我们可以通过它在进程间传递我们的数据,那下面我们就来看看具体的实现步骤服务端1)首先在服务端定义一个Service服务,用这个Service来处理客户端的请求2)其次需要通过一个Handler来创建一个Messenger对象,并在Service的onBind方法中返回这个Me...

2019-05-22 11:10:42 584

原创 Android实现IPC进程间通信的6种方式 (三)共享文件篇

接前两篇基础篇bundle篇共享文件实现进程间通信其实就是两个进程通过读/写同一个文件来实现数据交换。话不多说,直接上代码特别感谢《Android 开发艺术探索》...

2019-05-21 22:40:32 1102

原创 Android实现IPC进程间通信的6种方式 (二)Bundle篇

接上篇 Android进程通信基础我们知道,Activity、Service和Receiver都可以利用Intent传递Bundle数据,而Bundle实现了Parcelable接口,因此Bundle可以在进程间传输在上篇的FirstActivity中,我们在点击button1时,利用intent将bundle数据传输给SecondActivitypublic class FirstActi...

2019-05-21 16:38:06 1147 1

原创 Android实现IPC进程间通信的6种方式 (一)基础篇

IPC是Inter-Process Communication的缩写,表示进程间通信或跨进程通信。进程是一个执行单元,一个程序或一个应用,系统会为每个进程分配独立的内存空间。不了解进程、线程、应用程序的朋友可以参考我的另一篇博文 。在进程的执行过程中,很有可能需要与别的进程进行通信,比如说我们在淘宝付款时,淘宝就需要调用支付宝,并接收支付宝返回的付款成功与否的消息。因此,我们必须要学会如何进行进...

2019-05-21 16:36:27 974

原创 用Comparator实现自定义排序

当我们需要对一个自定义的类按照某一种规则进行排序时,我们需要用Comparator来实现。1、使用方法例如,我们对5个学生按照中文姓名的先后顺序进行排序:首先我们定义一个Student类public class Student{ public String name; public Student(String name) { this.name = name; }...

2019-05-10 17:03:36 1290

原创 Android中用handler + runnable 或 timer + timerTask实现定时或循环

最近遇到一个需求:用户在15秒没有任何操作,就播放下一张照片。在开发的时候发现有两个较为简单的实现方式:1、handler + Runnable定义handler和runnableprivate Handler handler = new Handler();private Runnable runnable = new Runnable() { @Override pub...

2019-05-08 15:50:37 508

原创 Android之TextView文字旁边有图标简化实现

在开发过程中,经常会遇到下图的情况文字旁边有图标,如果将文字和图片用两个控件来实现就比较麻烦了,简单的方式就是用一个TextView来实现TextView text = new TextView(getContext());text.setCompoundDrawablesWithIntrinsicBounds(getResources().getDrawable(R.drawable.p...

2019-02-22 17:45:14 2891 1

原创 Android实现TextView字体过长时滚动(跑马灯)显示

今天帮同事写一个小的对话框,TextView文字较短时有多长显示多长,在文字较长时左右滚动显示文字,实现效果如下实现代码为import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.text.TextUtils;import android.util...

2019-02-22 16:56:00 5251 1

原创 Android之Broadcast广播机制学习

Broadcast Receive有两种注册形式,分别是动态注册和静态注册1、动态注册public class MainActivity extends Activity { private IntentFilter intentFilter; private NetworkChangeReceiver networkChangeReceiver; @Override...

2018-11-02 14:10:58 188

原创 Android studio删除本地未commit的修改

在上次push代码之后,修改了本地代码,想用pull命令回退本地修改,让代码与远程仓库代码保持一致,但是,我pull了多次,每次都是All files are up-to-date我起初是以为我修改了本地代码,有冲突所以pull不下来,所以我将本地代码进行了commit,提交到本地仓库,然后进行pull,可是代码还是没有任何的变化,整的我整个人都不好了,所以就到处查,各种试,终于让我找到了解决...

2018-10-26 18:30:21 2264

原创 Android studio中Git的学习和使用心得(二)在Android studio中如何使用Git进行代码回退与再提交

这篇博客是上篇博客的进阶,针对Android studio常用的Git使用情景进行总结。上篇博客链接https://blog.csdn.net/qq_34820468/article/details/83416326。下面我们来学习Android studio使用git的进阶:1、本地代码(workspace)、本地仓库(repository)、远程仓库(remote)的关系上篇博文中我们...

2018-10-26 18:02:59 2252

原创 Android studio中Git的学习和使用心得(一)如何在Android studio中使用Git进行代码提交

在这之前,你需要先安装好Android studio、git,还需要有Github账号。没有git的同学参考:https://blog.csdn.net/lyc088456/article/details/78949650 进行安装并在Android studio中配置git,没有Github账号的在官网上注册一个https://github.com/1、这个是你在Android studio...

2018-10-26 16:04:37 636

原创 关于Android中context和log的用法

1、contextAndroid在new控件的时候,有时候会用this(ClassName.this),有时候会用getContext(),有时候又会见到context,或者getApplicationContext(),那他们有什么区别吗?TextView textView = new TextView(this);TextView textView = new TextView(Mai...

2018-10-25 21:57:45 623

原创 Android观察者模式

在开发天气app的过程中,需要随时从网络获取最新的天气情况,并且获取完天气数据之后要更新UI,但是网络请求是耗时操作,主线程不可能等着网络加载结束之后获取数据,并且因为多个地方都要根据天气情况进行更新,因此这个时候用g观察者模式是最合适的了。获取天气的类就属于被观察者,需要更新天气的地方就是观察者,所以我们首先要定义接口、被观察者类,然后在需要地方添加观察者import java.util.L...

2018-09-27 20:22:29 126

原创 Java单例的实现

当需要网络加载之后进行一些操作,这时若有多个同时请求可能会出现拥堵现象,所以我们希望他们是一个一个来请求,那我们要怎么实现让他们一个一个请求呢,这时就需要网络请求采用单例的形式。1)将网络请求类的构造方法设置为private2)在类中定义一个private static的自己的实例3)提供一个public static的getInstance()方法,将非空的实例返回这样当别人需要用到我这...

2018-09-27 19:53:33 108

原创 Android回调

在天气APP的MainActivity中需要调用Weather类中的requestWeather(),在网上获得天气数据,并要求requestWeather()在获得完天气数据之后,将天气数据返回给MainActivity(即回调),这样MainActivity就能够在获得天气数据之后更新UI。首选需要定义一个接口WeatherDataListenerpublic interface Weat...

2018-09-27 16:45:24 354

原创 Android中绘图/文字尺寸dp,

2018-09-26 11:51:28 278

原创 Java中子类与父类的构造方法

子类与父类的构造方法有两点原则:1、子类的构造方法必须调用父类的构造方法(原因为什么,可参考此链接https://blog.csdn.net/y_dzaichirou/article/details/54920715)2、被子类调用的父类构造方法必须存在(这个显而易见)下面举个栗子class Fu{ String s;}class Zi extends Fu{ pub...

2018-09-26 11:48:56 2584

原创 Android实现再按一次(返回键)实现退出(应用程序)

1、定义一个继承自Application的ExitApplication类package com.example.weather;import android.app.Activity;import android.app.Application;import java.util.ArrayList;import java.util.List;public class ExitAp...

2018-09-25 17:32:47 1898

原创 Android将布局封装成类

这几天在做一个天气的小demo,其中要显示今天、明天和后天三天的天气情况,每天的天气是一个单独的布局,左右滑动进行切换,因此我用了一个ViewPager将三天的布局装进去。但是最初我是将三天的布局中每个控件一一进行定义,会发现代码很长,而且做了很多重复性的工作,所以我决定将三天的天气布局封装成一个类,通过类的三个实例来实现今天、明天、后天,所以,我做了如下工作:1、写DayLayout类,继承自...

2018-09-25 16:32:02 1012

原创 Android中Bundle的用法

Bundle经常与Intent一起用,在两个Activity间传递数据。个人目前的理解就是,如果Intent传递的数据只有一个,那么就直接用Intent的putExtra()方法直接放进参数即可。那如果Intent需要传递的是好几个参数,或者是一个类,那么这时候就需要用到BundleBundle bundle = new Bundle();Intent intent=new Intent(Ma...

2018-09-25 11:40:45 15105

原创 Android网络请求完成之后更新UI的几种方法

首先我们需要明确几点:1、网络请求因为是耗时操作,不能再主线程中进行,所以只能在子线程中进行2、更新UI是必须在主线程中进行的所以,我们要在网络请求之后更新UI需要做以下几个步骤:1、在主线程中new一个子线程2、在子线程中进行网络请求3、网络请求结束之后更新UI对于上面的3个步骤有两种方法可以供选择,一个是采用Thread和Handler,另外一种就是采用AsynTask。(1)...

2018-09-25 11:25:24 6813

原创 Android studio 3.1.4 无法获取pom文件

之前用Android studio一切正常,不过昨天下午突然报出这样的错误:Could not GET ‘https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.1.4/gradle-3.1.4.pom’.试了很多办法,折腾了大半天终于让我给弄好了,具体办法如下:1.File->Settings-...

2018-09-19 15:12:37 2481

原创 在非主线程非MainActivity中更新Toast、ImageView等UI控件方法

首先需要明确一点就是UI只能在主线程中更新,其他地方想更新UI,我目前学到的有两种方法:1.采用handler的方式public class MainActivity extends Activity{ ...... ImageView imageView; ...... protected void onCreate(Bundle savedInstanceState) {...

2018-09-18 18:03:54 462

原创 在Android中解析JSON数据

1.根据JSON数据格式新建class文件 JSON接口内容如下{ "baseinfo": { "city": "深圳", "date": "2018-09-1

2018-09-13 11:47:28 242

原创 Java中thread的start和run方法的区别

thread.start()之后在主线程外开启了新的线程,并且新开启的线程已经就绪,并没有运行,一旦得到cpu时间片,就开始执行run()方法,run方法运行结束,此线程随即终止。一个线程只能start一次。Thread.run()是在主线程中调用并执行run方法的内容,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到写线程的目...

2018-09-01 11:01:35 312

原创 MySQL安装与卸载教程

折腾了一整天,安装了三次,卸载了两次,终于把MySQL安装好了,下面是我总结的教程,希望能帮到大家。 (一)安装教程 1.在https://dev.mysql.com/downloads/mysql/下载压缩包(注意:网上的安装教程几乎都是低版本的mysql,所以一定要下载低版本的,我下载的是5.6.41,如果你装的是高版本的,并且没有成功,别担心文章后面有卸载教程 2.将文件解压到...

2018-08-27 11:55:35 26743 8

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除