gpt4 book ai didi

Android:在 ContentProvider 中调用自定义方法

转载 作者:可可西里 更新时间:2023-11-01 18:59:54 24 4
gpt4 key购买 nike

我有一个自定义的 ContentProvider,用于将从 GPS 获得的修复存储到 SQLite 数据库中。此类覆盖了 ContentProvider 方法(删除、插入、查询...),但请注意,我还包含了一个查询最后修复的方法。

public class FixesContentProvider extends ContentProvider {
@Override
public int delete(...) { ... }
...
@Override
public Cursor query(...) { ... }

public Cursor getLastFix(Uri uri) { ... }
}

通过调用 getContentResolver() 从其他服务或 Activity 查询数据非常容易。

ContentResolver cR = getContentResolver();
Cursor fixes = cR.query(CONTENT_URI, ...);

但我无法调用我的自定义方法 (FixesContentProvider#getLastFix)。 如何调用 ContentProvider 中定义的自定义方法?

也许我不明白ContentProviders/ContentResolvers在这种情况下是如何工作的,但是官方Android documentation provided by Google在这个意义上不是很清楚。

最佳答案

But I am not able to call my custom method (FixesContentProvider#getLastFix).

完全正确。不过在这种情况下,您可以利用一个事实:querygetLastFix 方法都返回一个 Cursor 对象。因此,我要做的是为您传递给 query 的 URI 添加一些值,然后决定您实际想要做什么:querygetLastFix。例如:

public Cursor query(Uri uri,...) { 
if ( uri says it has to return the last fix )
return getLastFix(uri);
// otherwise, do normal operations...
return cursor;
}

事实上,query 方法假设返回一个结果,给定一个 Uri。因此,如果您需要检索上次修复,则必须在 URI 中指定您想要上次修复。

关于Android:在 ContentProvider 中调用自定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3325601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com