我的总结笔记

我的总结笔记 
一、广播:

发送: 
Intent intent = new Intent(); 
intent.setAction(“”); 
sendBroadcast();

接收: 
1.注册: 
IntentFilter intentF = new IntentFilter(“。。。。”); 
registerReceiver(rec,intentF);

class MyReceiver extend BroadCastReceiver{ 
onReceive(); 
}

注销: 
unRegisterReceive(rec);

二、服务: 
客户端: 
启动: 
Intent intent = new Intent(this,Myservice.class); 
startService(intent); 
绑定: 
Intent intent = new Intent(); 
intent.setComponent(new Compontent(“”,”“)); 
bindService(intent,conn,flag);//flag = Context.BIND_AUTO_CREATE

private ServiceConnection = new ServiceConnection(){ 
onServiceConn…..(IBinder service){ 
iAIDLBinder = IAIDLBinder.sub().asInterface(service); 
iAIDLBinder .add(); 

onServiceDis……..() 
}

服务端: 
onBinder(){ 
retrun iMyBinder; 

private IBinder = new IAIDLBinder.sub(){ 
被定义的方法add 

关闭: 
unbindService(conn);

三、内容提供者: 
uri用法: 
content://contentProvider的包路径/* //匹配任意表 
content://contentProvider的包路径/表名/# //匹配表的任意一行 
content://contentProvider的包路径/表名/1 //匹配表的第一行 
创建provider: 
class MyContentProvider extend ContentProvider{ 
getType() 
删,查,改 

调用: 
ContentResolver resolver = getContentResolver(); 
Uri uri = Uri.pase(“content://……..”); 
Cursor cursor = resolver.query(uri,……….);

四、框架 
MVC框架: 
Model层: sqlite数据库, JavaBean, SharedPreference, sdcard,获取网络数据的api等 
View层: xml布局文件,自定义控件等 
Controller层: Activity等 
此处需要注意的是,在传统的MVC设计模式中, 
Activity属于Controller层而不是View层,因为Activity即承担了数据调用,也承担了界面展示,相当于View和Model中间的协调器.很多初学者都会误认为Activity属于View层.当然,这种说法仅限用MVC模式,换做其他模式就不一定了哦!

MVP框架: 
1.各部分之间的通信,都是双向的. 
2.View与Model不发生联系,都通过Presenter传递. 
3.View非常薄,不部署任何业务逻辑,称为”被动视图”(Passive View),即没有任何主动性,而Presenter非常厚,所有逻辑都部署在那里. 
当这样调整了之后, Activity就纯粹属于View层了,所有业务逻辑全由Presenter来完成.当View界面被用户操作时(比如按钮点击), View层就会调用Presenter完成相关业务逻辑,而Presenter完成了之后,就会将结果以回调的形式传递给View层,由View层完成界面刷新.

MVVM框架 
datdBinding

五、数据库: 
插入: 
INSERT INTO TABLE_NAME [(column1, column2, column3,…columnN)] 
VALUES (value1, value2, value3,…valueN); 
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,…valueN);

查询: 
SELECT column1, column2, columnN FROM table_name; 
SELECT * FROM table_name;

更新: 
UPDATE table_name 
SET column1 = value1, column2 = value2…., columnN = valueN 
WHERE [condition]; 
UPDATE COMPANY SET ADDRESS = ‘Texas’ WHERE ID = 6;

删除: 
DELETE FROM table_name 
WHERE [condition]; 
DELETE FROM COMPANY WHERE ID = 7;

limit限制: 
SELECT column1, column2, columnN 
FROM table_name 
LIMIT [no of rows] 
SELECT column1, column2, columnN 
FROM table_name 
LIMIT [no of rows] OFFSET [row num]

模糊查询: 
SELECT column_list 
FROM table_name 
WHERE column LIKE ‘XXXX%’ 
注:%:表示一个或多个字符,_:表示一个字符

条件查询: 
SELECT column1, column2, columnN 
FROM table_name 
WHERE [condition] 
SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;

查询attusersinfo表中UI_Account字段重复的所有数据。 
select * from attusersinfo where UI_Account in (select UI_Account from attusersinfo group by UI_Account having COUNT(*)>1)

六、设计模式: 
单例: 
构造器私有化,对象静态获取。 
工厂: 
java中多态的实现。 
观察者(发布订阅模式): 
被观察者,观察者 、被观察者抽象,观察者抽象

七、第三方框架: 
//网络请求框架: 
//文件上传、下载 
AsyncHttpClient :

AsyncHttpClient client = new AsyncHttpClient(); 
RequestParams par = new RequestParams(); 
par.put(); 
…… 
client.post(context,url,par,new AsyncHttpResponseHandler(){ 
onSuccess(); 
onFailure(); 
});

//文件下载: 
AsyncHttpClient cli = new AsyncHttpCLient(); 
String[] fileType = new String[]{“”,”“}; 
cli.get(context,url,new BinaryHttpResponseHandler(){ 
});

//json解析框架 
Gson: 
Gson gs = new Gson(); 
gs.toJson(*.class); 
gs.fromJson(strJson,*.class); 
JsonObject,JsonArray

//文件批量下载框架 
FileDownloader 
创建builder 
配置参数:同时下载量,重试次数,网络超时 
初始化FileDownloaderConfiguration config = builder.build(); 
FileDownloader.init(config); 
下载状态监听OnFileDownloadStatusListener 
注册监听, 
取消注册。

//图片加载框架 
Glide 
Glide.with(context).load(url/R.mipmap…).into(view); 
Glide.with(context).clear(view); 
Glide.with(context).load(url).apply(bitmapTransform(new Crop…..())).error(R.mipmap…).into(view);

//版本更新框架 
xversionupdate 
VersionUpdateConfig.getInstance()//获取配置实例 
.setContext(MainActivity.this)//设置上下文 
.setDownLoadURL(url)//设置文件下载链接 
.setNewVersion(“1.0.1”)//设置即将下载的APK的版本号,避免重复下载 
.setFileSavePath(savePath)//设置文件保存路径(可不设置) 
.setNotificationIconRes(R.mipmap.app_icon)//设置通知图标 
.setNotificationSmallIconRes(R.mipmap.app_icon_small)//设置通知小图标 
.setNotificationTitle(“版本升级Demo”)//设置通知标题 
.startDownLoad();//开始下载

//其他框架 
EventBus: 
EventBus.getDefault().register(this)

@Subscribe(threadMode == ThreadMode.MAIN)//background,posting,sync 
public void onEvent(T event){

}

EventBus.getDefault().post(new T());

EventBus.getDefault().unregister(this);

八、网络编程(socket): 
TCP: 
服务端: 
ServerSocket serSoc = new ServerSocket(port); 
Socket soc = serSpc.accept(); 
InputStream is = soc.getInputStream(); 
客户端: 
Socket soc = new Socket(“ip”,”port”); 
OutputStream opt = soc.getOutputStream();

UDP: 
单播、广播 
区别:对应ip的不同 
广播:InetAddress ip= InetAddress.getByName(“12.12.12.12”); 
单播:InetAddress ip= InetAddress.getLocalHost(); 
发送端: 
DatagramSocket ds = new DatagramSocket(port); 
byte[] buff = “fkjs”.getBytes(); 
DatagramPacket dp = new DatagramPaket(buff ,buff.length,ip,port); 
ds.send(dp)

接收端: 
DatagramSocket ds = new DatagramSocket(port); 
while(true){ 
byte [1024] bt = new byte[1024]; 
DatagramPacket dp = new DatagramPacket(bt,bt.length); 
ds.receive(dp); 
String data = new String(dp.getData(),0,dp.getLength); 
}

UDP组播: 
发送端: 
MulticastSocket ms = new MulticastSocket(port); 
byte[] buff = “kdhcklaskl”.getBytes(); 
DatagramPacket dp = new DatagramSocket(buff,buff.length,ip,port); 
ms.send(dp); 
接收端: 
MulicastSocket ms = new MulitcastSocket(port); 
ms.joinGroup(ip); 
byte[1024] buff = new byte[1024]; 
DatagramSocket ds = new DatagramSocket(buff,buff.length); 
ms.receive(dp);

猜你喜欢

转载自blog.csdn.net/weixin_42748752/article/details/81217636