我的总结笔记

我的总结笔记
一、广播:

发送:
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);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值