Android内容观察者怎么启动,Android历史内容观察者

这就是我最终为我的案例解决问题的方法(我希望在历史发生变化时阅读历史记录)

@Override

public void onChange(boolean selfChange) {

super.onChange(selfChange);

/**

* Get SharedPreferneces of the user

*/

SharedPreferences pref= myContext.getSharedPreferences("com.tpf.sbrowser",

Context.MODE_PRIVATE);

long wherelong = pref.getLong("Date", 0);

DatabaseManager db=new DatabaseManager(myContext,1);

String[] proj = new String[] { Browser.BookmarkColumns.TITLE,

Browser.BookmarkColumns.URL, BookmarkColumns.DATE,};

String sel = Browser.BookmarkColumns.BOOKMARK + " = 0";

Cursor mCur = myContext.getContentResolver().query(

Browser.BOOKMARKS_URI, proj, sel, null, null);

Log.d("onChange", "cursorCount"+mCur.getCount());

mCur.moveToFirst();

String title = "";

String url = "";

long lastVisitedDate=0;

DbMessage msg = new DbMessage(lastVisitedDate,url, title);

/**

* Start reading the user history and dump into database

*/

if(mCur.moveToFirst() && mCur.getCount() > 0) {

while (mCur.isAfterLast() == false) {

title =mCur.getString(0);

url = mCur.getString(1);

lastVisitedDate =mCur.getLong(2);

if ((lastVisitedDate>wherelong) && (!title.equals(url))) {

msg.set(lastVisitedDate, url, title);

db.InsertWithoutEnd(msg);

pref.edit().putBoolean("BrowserHistoryRead", true).commit();

pref.edit().putLong("Date", lastVisitedDate).commit();

myContext.updateTime(wherelong,lastVisitedDate);

wherelong=lastVisitedDate;

}

mCur.moveToNext();

}

}

}

但是如果有人能分辨出onChange的哪个迭代(在简单的问题代码中)与页面加载中的哪个状态完全对应,那么仍然会很棒.

根据我的学习,在第一次迭代中,标题与url相同,在第三次迭代中,正确的页面标题存在.但是在重定向期间,onChange最多被调用了5次.那么有人可以确认哪个迭代适应哪个阶段?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值