2013-05-11 2 views
0

Я определил функцию в классе под названием Receiver, который расширяет широковещательный приемник. код функции выглядит так:MODE_PRIVATE в приемнике Broacast

public List<DatabaseRow> ToUpload() 
      { 
      sampleDB = openOrCreateDatabase(TABLE_NAME, MODE_PRIVATE, null); 
      // sampleDB.execSQL("DROP TABLE IF EXISTS "+ TABLE_NAME); 
     Create_Database(); 
     List<DatabaseRow> list; 
     list=Get_Raw("uploaded","no"); 
     Log.v("TEST", "Size: "+ list.size()); 
     int tot = list.size(); 
    // return list; 
      for (int i=0; i < tot; i++) 
      { Log.v("Video id: "+ list.get(i).id, "Video_path: "+ list.get(i).video_path); 
      } 
      return list; 
     // list.get(0).video_path 
     // Log.v("TEST", "Size: "+ list.get(0).title); 


      } 

Это estract несколько строк в базе данных. В Eclipse я получаю сообщение об ошибке. MODE_PRIVATE не может быть разрешен переменной. Я попытался определить ту же функцию в действии, и она работает. В чем проблема в широковещательном приемнике и что я должен сделать, чтобы исправить это. Я уже импортировал Контекст.

ответ

4

MODE_PRIVATE - целое число, объявленное в классе Context. Класс активности наследует от Context, что делает MODE_PRIVATE доступным непосредственно из всех видов деятельности.

BroadcastReceiver делает не наследует от Context и поэтому MODE_PRIVATE не является непосредственно доступным.

Поскольку public static вы можете получить доступ к нему, как это:

Context.MODE_PRIVATE 
+0

Если я пытаюсь вставить Context.MODE_PRIVATE так: sampleDB = openOrCreateDatabase (TABLE_NAME, Context.MODE_PRIVATE, нуль); Ошибка в MODE_PRIVATE исчезает, но я получаю сообщение об ошибке: Метод openOrCreateDatabase (String, int, null) не определен для типа Receiver. – user2312945

+0

@ user2312945 Это та же проблема. BroadcastReceiver не содержит метода, называемого 'openOrCreateDatabase'. Он объявлен в «Контексте». Для вызова этого метода вам нужна ссылка на ваш контекст. Такая ссылка, например. представленный в методе 'onReceive' вашего приемника. – MAV

+0

Так что я должен делать на практике? – user2312945

Смежные вопросы