2024年11月15日,提供4个订阅地址10高速免费节点,免费翻墙入口,V2Ray与VPN高效接入点共享,享受无尽网络自由!v2ray,clash机场,科学上网翻墙白嫖节点,免费梯子,白嫖梯子,免费代理,永久免费代理
一、说明介绍与机场推荐
全球节点更新啦!涵盖美国、新加坡、加拿大、香港、欧洲、日本、韩国等地,提供4个全新订阅链接,轻松接入V2Ray/Clash/小火箭等科学上网工具,简单复制、粘贴即畅享全球网络自由!只需复制以下节点数据,导入或粘贴至v2ray/iso小火箭/winxray、2rayNG、BifrostV、Clash、Kitsunebi、V2rayN、V2rayW、Clash、V2rayS、Mellow、Qv2ray等科学上网工具,即可直接使用!
二,自用机场推荐
包月(不限时)最低5元起150GB流量:点我了解详情
同步电报群:https://t.me/xfxssr
永久发布页地址,防丢失https://sulinkcloud.github.io/
三,节点列表和测试速度
Clash Verge 一键启动版
一键安装,安装后导入订阅地址,点击开启一键加速即可
http://subssr.xfxvpn.me/api/v1/client/subscribe?token=d85cf7f471a62c5954b76b3af8bc16c7
http://subssr.xfxvpn.me/api/v1/client/subscribe?token=d9d9e7ebaff281fea79c2f19db9ec3b9
http://subssr.xfxvpn.me/api/v1/client/subscribe?token=dc9006360a3e130d794b822a5904908b
http://subssr.xfxvpn.me/api/v1/client/subscribe?token=5eb7ffa15b5961a448f1c6f7421aec42
clash verge 测试速度超快,看油管4k无压力
分割线
在 Android 中使用 原生 ContentProvider**
在 Android 的项目开发中, ContentProvider 是一个对于管理和共享数据的一种强大的工具。它允许您实现安全、方便的数据访问,帮助保持应用程序之间的数据一致性。
**什么是ContentProvider?**
ContentProvider 是一种接口类,它为设备提供了对其本地数据的公共视图,使其他应用程序能够通过其中获取和操作本地Data。它是一个桥梁,Connecting different applications and data sources.
**ContentProvider 组成部分**
1. **Authority(URI**):它用来定义一个 ContentProvider 的URI,该URI是访问这一 provider数据的uri。
2. **Data(数据):这是一组内容,其中每一条数据与具体的一行记录相对应。这些Record由UriQuery通过URI表示。
3. **Cursor(游离者):它代表对表达式中的任何一个Record的“状态”,你可以使用它来访问你的数据,但你不能存储这些data。
**ContentProvider 的使用**
1. **创建 Authority_URI:**当我们使用 ContentProvider 时,我们需要在注册时指定URI,它的uri是应用程序自己的,用于区分不同的应用。
“`java
public class Main extends Activity {
private static final String AUTHORITI_URI= “content://” + BuildConfig.APPLICATION_ID + “.main Provider”;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// …
Uri mUri = Uri.parse(AUTHORITI_URI);
}
“`
2. **在 ContentProvider中提供数据:**当我们创建一个ContentProvider的uri时,需要在UriQuery中指定Data和Cursor相关的选项。
“`go
package com.example.mainprovider
import android.content.ContentProvider;
import android.database.sqlite.SQLiteDatabase;
public class MainProvider extends BaseContentProvider {
// Create a database instance, which is our provider.
private SQLiteDatabase mDB;
public static AuthorityURI AUTHORITY_URI = “content://” + BuildConfig.APPLICATION_ID + “.main_provider”;
@Override
public void onCreate() {
if (mDB == null) {
super.onCreate();
mDB= openDatabase(AUTHORITY_URI , true, null);
}
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, Uri seen) throws ThrownException {
// You can implement your custom queries here. The database and URI will be passed in to this function.
return queryContent(muri);
}
}
“`
3. **向ContentProvider添加新数据:** 当我们增加数据或表格数量时,我们需要向 ContentProvider 添加新的Uri以便获得新数据。
“`java
Uri insertData(String[] projection, String data) {
SQLiteDatabase db = openDatabase(
AUTHORITY_URI ,
true,
null);
Cursor newCursor = db.rawQuery(“INSERT INTO mytable DEFAULT VALUES”,null);
return newCursor.get Uri();
}
“`
4. **在 ContentProvider中处理数据:** 我们可以通过处理我们的SQLQuery 来进行不同的操作,比如删除数据。
“`c
public void delete(Context context, String selection, String[] selectionArgs) {
super.delete(AUTHORITY_URI + ‘/’ + selection, selectionArgs);
}
Uri insertData(String data) {
SQLiteDatabase db = openDatabase(
AUTHORITY_URI,
true,
null);
db.execSQL(“INSERT INTO mytable DEFAULT VALUES”);
return Uri.parse(“/mydata/01”);
}
“`