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秒以内に完了しません。データベースとカーソルも閉じました。誰かがその値を取得する方法を教えてください。前もって感謝します。