有没有办法在服务中使用startManagingCursor()而不是活动,结果相同(如here所示)?
更具体地说,我想基于服务的生命周期来管理给定的Cursor的生命周期。例如,当服务被销毁时,它将自动调用给定Cursor上的deactivate()。此外,当创建/再次启动服务时,它将调用requery()方法。
答案 0 :(得分:7)
有没有办法在服务中使用startManagingCursor()而不是活动,结果相同
不,抱歉。
使用Service.class中实现的其他适当方法是否可行?
没有
以其他方式可行吗?
欢迎您编写自己的支持代码,以执行您想要的任何操作。我怀疑你能否实现你所寻求的目标。
恕我直言,是的。在销毁服务时自动关闭或者,它完全没有意义吗?
Cursor
并不是一个坏主意。但是,deactivate()
/ requery()
的概念在服务中对我来说毫无意义。这也是不可能的部分,因为您没有地方可以放置已停用的Cursor
,这将在未来的某些服务中被接收。
答案 1 :(得分:0)
可能,您只需要将其投射到活动
如下所示 ((Activity)context).startManagingCursor(cursor);
这是完整的代码
private void getUserId(Context context) {
AdapterClass adapterClass = new AdapterClass(this,
DatabaseDetail.TABLE_USER_REGISTRATION);
adapterClass.Open();
Cursor cursor = adapterClass.fetchRecords(new String[]{"USER_OID"},
null);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
((Activity) context).startManagingCursor(cursor);
}
cursor.moveToFirst();
adapterClass.close();
}