方法startManagingCursor(Cursor)未定义为Service类型?

时间:2011-11-14 05:51:56

标签: android android-service android-cursor

我创建了一项服务。现在我试图通过创建数据库类的boject来访问onstart()服务中的数据库。我想从某些表中选择记录,因为我使用了cursor.when我写了startManagingCursor(游标对象)我发生错误那里作为方法startManagingCursor (游标对象)未定义类型srvice。现在,如果我想移动光标或管理它,那么我如何从该表中选择记录?或者没有必要编写startManagingCursor(游标对象);在服务?如果我删除此功能,那么我会得到记录吗?这里我附加了代码:

       @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);

1 个答案:

答案 0 :(得分:0)

您不能在服务中使用startManagingcursor。当活动被销毁时,托管游标负责关闭游标,并且当活动停止并重新启动时,它们将被停用并重新获取。在服务中这是不可能的。为了更好地理解验证这些答案 startManagingCursor() in a service?

What's the purpose of startManagingCursor?

没有startmanaging游标,你可以获得记录。但是你需要在完成时处理游标的关闭。 (cNames.close())

当您获得适配器时尝试

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