1
使用下面的代碼,我可以刪除特定號碼的呼叫,這隻能很好地工作,它很慢,並且應用程序在代碼運行時變得無響應(特別是如果日誌中有很多呼叫)如何從上次通話中刪除日誌?
so what我真的希望它只能檢查日誌中的最後一個呼叫,而不是通過空洞日誌。
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();}}
你的答案是錯的。您需要在單獨的線程中執行查詢和處理結果,而不是在UIThread中。檢查'AsyncTask'類。 – m0skit0
你是對的這導致了另一個問題。 – steo