在不同进程中设置cookie,需要使用ContentProvider来实现共享,具体实现步骤如下:
1.创建一个继承自ContentProvider的CookieProvider类,重写query、insert、delete、update等方法,来实现cookie的增删改查。
public class CookieProvider extends ContentProvider{ @Override public boolean onCreate() { return true; }
@Nullable
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
//查询cookie
return null;
}
@Nullable
@Override
public Uri insert(Uri uri, ContentValues values) {
//添加cookie
return null;
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
//删除cookie
return 0;
}
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
//更新cookie
return 0;
}
@Nullable
@Override
public String getType(Uri uri) {
return null;
}
}
2.在清单文件中注册CookieProvider。
3.在需要添加cookie的进程中,使用ContentResolver来添加cookie。
ContentValues cookieValue = new ContentValues(); cookieValue.put("key","value"); getApplicationContext().getContentResolver().insert(Uri.parse("content://your.package.name.CookieProvider/cookie"),cookieValue);
4.在需要获取cookie的进程中,使用ContentResolver来读取cookie。
Cursor cursor = getApplicationContext().getContentResolver().query(Uri.parse("content://your.package.name.CookieProvider/cookie"), null, null, null, null);
这样就实现了在不同进程中共享cookie的功能。