Most visited

Recently visited

Added in API level 1
Deprecated since API level 21

CookieSyncManager

public final class CookieSyncManager
extends Object implements Runnable

java.lang.Object
   ↳ android.webkit.CookieSyncManager


该类在API级别21中已被弃用。
WebView现在会根据需要自动同步Cookie。 您不再需要创建或使用CookieSyncManager。 要手动强制同步,您可以使用CookieManager方法flush() ,它是flush()的同步替代sync()

CookieSyncManager用于在RAM和永久存储之间同步浏览器Cookie存储。 为了获得最佳性能,浏览器cookie被保存在RAM中。 一个单独的线程在一个定时器的驱动下保存cookie。

要使用CookieSyncManager,主应用程序必须在应用程序启动时调用以下内容:

CookieSyncManager.createInstance(context)

要设置同步,主机应用程序必须调用

CookieSyncManager.getInstance().startSync()

在Activity.onResume()和调用

 CookieSyncManager.getInstance().stopSync()
 

在Activity.onPause()中。

要获得即时同步而不是等待定时器触发,主持人可以打电话

CookieSyncManager.getInstance().sync()

同步时间间隔为5分钟,因此无论如何您都需要手动强制同步,例如onPageFinished(WebView, String) 请注意,即使sync()也是异步发生的,所以不要在活动关闭的时候这样做。

Summary

Constants

String LOGTAG

Fields

protected WebViewDatabase mDataBase

protected Handler mHandler

Public methods

static CookieSyncManager createInstance(Context context)

在上下文中创建一个单例CookieSyncManager

static CookieSyncManager getInstance()

单身人士访问 CookieSyncManager

void resetSync()

此方法已弃用。 调用resetSync不再需要,因为WebView会自动同步Cookie。

void run()

当实现接口 Runnable的对象用于创建线程时,启动该线程将导致在该单独执行的线程中调用该对象的方法 run

void startSync()

此方法已弃用。 由于WebView会自动同步Cookie,因此不再需要调用startSync。

void stopSync()

此方法已弃用。 调用stopSync不再有用,因为WebView会自动同步Cookie。

void sync()

此方法已弃用。 改为使用flush()

Protected methods

Object clone()

创建并返回此对象的副本。

void onSyncInit()
void syncFromRamToFlash()

此方法在API级别21中已弃用。请改为使用flush()

Inherited methods

From class java.lang.Object
From interface java.lang.Runnable

Constants

LOGTAG

Added in API level 21
String LOGTAG

常量值:“websync”

Fields

mDataBase

Added in API level 21
WebViewDatabase mDataBase

mHandler

Added in API level 21
Handler mHandler

Public methods

createInstance

Added in API level 1
CookieSyncManager createInstance (Context context)

在上下文中创建一个单例CookieSyncManager

Returns
CookieSyncManager CookieSyncManager

getInstance

Added in API level 1
CookieSyncManager getInstance ()

单身人士访问CookieSyncManager 如果之前未调用createInstance(Context)则会抛出IllegalStateException异常。

Returns
CookieSyncManager CookieSyncManager

resetSync

Added in API level 1
void resetSync ()

此方法已弃用。
调用resetSync不再需要,因为WebView会自动同步Cookie。

resetSync()重置同步管理器的计时器。

run

Added in API level 1
void run ()

当实现接口 Runnable的对象用于创建线程时,启动该线程将导致该对象的 run方法在该单独执行的线程中被调用。

方法 run的总体合同是它可以采取任何行动。

startSync

Added in API level 1
void startSync ()

此方法已弃用。
由于WebView会自动同步Cookie,因此不再需要调用startSync。

startSync()请求同步管理器开始同步。

stopSync

Added in API level 1
void stopSync ()

此方法已弃用。
调用stopSync不再有用,因为WebView会自动同步Cookie。

stopSync()请求同步管理器停止同步。 删除队列中的任何SYNC_MESSAGE以中断同步循环

sync

Added in API level 1
void sync ()

此方法已弃用。
改为使用flush()

sync()强制同步管理器立即进行同步

Protected methods

clone

Added in API level 1
Object clone ()

创建并返回此对象的副本。 “复制”的确切含义可能取决于对象的类别。 一般意图是,对于任何对象x ,表达式:

 x.clone() != x
will be true, and that the expression:
 x.clone().getClass() == x.getClass()
will be true, but these are not absolute requirements. While it is typically the case that:
 x.clone().equals(x)
will be true, this is not an absolute requirement.

按照惯例,返回的对象应该通过调用super.clone获得。 如果一个类和它的所有超类( Object除外)都遵守这个约定,那将是这样的情况,即x.clone().getClass() == x.getClass()

按照惯例,这个方法返回的对象应该独立于这个对象(被克隆)。 为了实现这种独立性,可能需要在返回super.clone之前修改对象的一个或多个字段。 通常,这意味着复制包含被克隆对象的内部“深层结构”的任何可变对象,并将这些对象的引用替换为对这些副本的引用。 如果一个类仅包含原始字段或对不可变对象的引用,那么通常情况下不需要修改super.clone返回的对象中的字段。

Object的方法clone执行特定的克隆操作。 首先,如果该对象的类没有实现接口Cloneable ,则引发CloneNotSupportedException 请注意,所有数组都被视为实现接口Cloneable并且数组类型T[]clone方法的返回类型为T[] ,其中T是任何引用或基本类型。 否则,此方法创建该对象的类的新实例,并使用该对象的相应字段的内容来初始化其所有字段,就像通过赋值一样; 这些字段的内容本身并不克隆。 因此,此方法执行此对象的“浅拷贝”,而不是“深拷贝”操作。

Object本身并不实现接口 Cloneable ,所以在类 Object的对象上调用 clone方法将导致在运行时抛出异常。

Returns
Object a clone of this instance.
Throws
CloneNotSupportedException

onSyncInit

Added in API level 1
void onSyncInit ()

syncFromRamToFlash

Added in API level 1
void syncFromRamToFlash ()

此方法在API级别21中已弃用。
改为使用flush()

Hooray!