0

Broadcast Receiverクラスからアクセスすると、カーソル値がゼロになります。これは、データベースから値にアクセスするために使用するコードです。

public Cursor select_in(String num)
{
   final Cursor cur= db.rawQuery("SELECT incoming FROM contactlist WHERE number=\""+num+"\"",null);
   return cur;
}

これが、ブロードキャストレシーバークラスから関数を呼び出す方法であり、OnReceiveメソッドのコンテキストを渡しました。

openhelper=new OpenHelper(context);

this.db=openhelper.getWritableDatabase();
this.dh=new DataHelper(context);
String num=phonenumber;
Cursor cur=this.dh.select_in(num);  
if (cur.moveToFirst()){

do{
   incoming=cur.getInt(cur.getColumnIndex("incoming"));
}while(cur.moveToNext());
}

私の操作はそれほど重くなく、放送受信機で使用しているので10秒以内に完了しません。データベースとカーソルも閉じました。誰かがその値を取得する方法を教えてください。前もって感謝します。

4

1 に答える 1

0
Cursor c ;
         try{
            c = theDatabase.query("data", new String[] {KEY_CITY, KEY_TIMEZONE, KEY_COUNTRY, KEY_TIMEZONE_DISPLAY_NAME, KEY_TIMEZONE_ID},_ID+" = '"+id+"';", null, null, null, null, null);
         }catch(Exception e){
                Log.e("CLOCK", "Error getting Timezone for "+KEY_CITY+" : "+e.getMessage());
                return null;
        }
于 2013-01-15T05:48:06.357 に答える