1

1つのサービスを作成しました。データベースクラスのオブジェクトを作成して、サービスのonstart()でデータベースにアクセスしようとしています。テーブルからレコードを選択したいので、カーソルを使用しました。startManagingCursor(カーソルオブジェクト)を書き込むと、メソッドstartManagingCursorとしてエラーが発生します。 (カーソルオブジェクト)は、タイプsrviceに対して未定義です。カーソルを移動または管理したい場合、そのテーブルからレコードを選択するにはどうすればよいですか?または、startManagingCursor(cursor object);を記述する必要はありません。稼働中ですか?この関数を削除すると、レコードが取得されますか?ここにコードを添付しました:

       @Override
   public void onStart(Intent intent, int startid)
   {
       DBAdapter dbAdapter1 = DBAdapter.getDBAdapterInstance(Srvc_Sms_email.this);
       dbAdapter1.openDataBase();

        String[] sel = {"pid","date","datename"};
        Cursor cNames = dbAdapter1.selectRecordsFromDB("datesdatabase",sel,null,null,null,null,null);
        startManagingCursor(cNames);
        cNames.moveToFirst();
        int i1 =0;
        while (cNames.isAfterLast() == false)
        {
            pid.add(cNames.getInt(0));    
            datelist.add(cNames.getString(1));
            namelist.add(cNames.getString(2));
            cNames.moveToNext();
        }`

エラーはで発生しstartManagingCursor(cNames);ます。

4

1 に答える 1

0

サービスでstartManagingcursorを使用することはできません。管理対象カーソルは、アクティビティが破棄されたときにカーソルを閉じる処理を行います。アクティビティが停止および再開されると、カーソルは非アクティブ化されて再クエリされます。サービスでは、これは不可能です。理解を深めるため に、サービスでこれらの回答startManagingCursor()を確認しますか?

startManagingCursorの目的は何ですか?

カーソルの管理を開始しなくても、レコードを取得できます。ただし、終了時にカーソルのクローズを処理する必要があります。(cNames.close())

アダプターを入手したら、

DBAdapter dbAdapter1 = DBAdapter.getDBAdapterInstance(getApplicationContext());

于 2011-11-14T06:14:24.377 に答える