Java 如何仅从上次呼叫中删除日志?

Java 如何仅从上次呼叫中删除日志?,java,android,string,Java,Android,String,使用下面的代码,我可以删除特定号码的呼叫,效果很好,只是代码运行时速度非常慢,应用程序变得无响应(特别是当日志中有大量呼叫时) 所以我真正想要的是它只检查日志中的最后一次调用,而不是通过钻孔日志 String strUriCalls = "content://call_log/calls"; Uri UriCalls = Uri.parse(strUriCalls); Cursor c = context.getContentResolver().query(UriCalls,

使用下面的代码,我可以删除特定号码的呼叫,效果很好,只是代码运行时速度非常慢,应用程序变得无响应(特别是当日志中有大量呼叫时)

所以我真正想要的是它只检查日志中的最后一次调用,而不是通过钻孔日志

String strUriCalls = "content://call_log/calls";
    Uri UriCalls = Uri.parse(strUriCalls);
    Cursor c = context.getContentResolver().query(UriCalls, null, null,
            null, null);
    if (c.getCount() <= 0) {
        Toast.makeText(context, "Call log empty", Toast.LENGTH_SHORT)
                .show();
    }

    while (c.moveToNext()) {
        SharedPreferences sp = PreferenceManager
                .getDefaultSharedPreferences(context);
        String gonnabprefd = sp.getString("callerase", null);
        String[] numarry = gonnabprefd.split(" ");
        for (int i = 0; i < numarry.length; i++) {
            String gonnabpref = numarry[i];
            String queryString = "NUMBER='" + gonnabpref + "'";
            Log.v("Numberimcomingreciver ", queryString);
            int b = context.getContentResolver().delete(UriCalls,
                    queryString, null);
            if (b >= 1) {
                Toast.makeText(context, "deleted", Toast.LENGTH_LONG)
                        .show();}}
字符串字符串字符串=”content://call_log/calls";
UriCalls=Uri.parse(strUriCalls);
游标c=context.getContentResolver().query(UriCalls,null,null,
空,空);
如果(c.getCount()=1){
Toast.makeText(上下文,“已删除”,Toast.LENGTH\u LONG)
.show();}

不想回答我自己的问题,但要删除

while (c.moveToNext()) {

你的答案是错的。您需要在单独的线程中执行查询和处理结果,而不是在UIThread中。检查
AsyncTask
class。