gpt4 book ai didi

android - 如何在没有 Activity 的类中使用 getContentResolver?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:32:13 24 4
gpt4 key购买 nike

我的类(class)是这样的:

public class sendInformation{

public void test() throws Exception {
Uri uri = SuspiciousActivityTable.CONTENT_URI;
getContentResolver().update(uri, values2, where,new String[]{"Null"});
}
}
}

但它说 getContentResolver() 不存在,我知道我需要一个 Context 或 Activity 来完成这项工作,但我如何在这里获得正确的 Context?

最佳答案

你需要传递一个 Context,甚至是 ContentResolver类需要一个有效的上下文来实例化。

最简单的方法是作为方法的参数:

public void test(Context context) throws Exception {
Uri uri = SuspiciousActivityTable.CONTENT_URI;
context.getContentResolver().update(uri, values2, where,new String[]{"Null"});
}

并调用:(假设包含 test 的类已实例化并且您的 Activity 名称为 MyActivity <- 替换为 Activity name you're calling test() from)

try{
sendInformationInstanceVariable.test (MyActivity.this);
}
catch (Exception e)
{
e.printStackTrace();
}

MyActivity.this 可以缩短为 this if 你不是从调用 test()在匿名内部类中。

此外,如果您的类确实没有充分的理由被实例化,请考虑将 test() 设为 static 方法,如下所示:

public static void test(Context context) throws Exception {
Uri uri = SuspiciousActivityTable.CONTENT_URI;
context.getContentResolver().update(uri, values2, where,new String[]{"Null"});
}

然后从您的 Activity 中调用此方法而不需要实例:

try{
sendInformation.test (MyActivity.this);
}
catch (Exception e)
{
e.printStackTrace();
}

最后,抛出 Exception 是不好的做法,不要在没有充分理由的情况下这样做,如果你有充分的理由,请尽可能具体。

关于android - 如何在没有 Activity 的类中使用 getContentResolver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15077955/

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