Я совершенно новичок в Java и Android, поэтому я думаю, что, вероятно, упускаю что-то очевидное.
Я пишу приложение, в котором я пробую датчик ориентации и записываю результат в файл на SDCard, а также отображаю его в журнале на экране.
Все работает нормально, когда экран включен. Поскольку я также хочу работать, когда экран темнеет, я добавил код для получения PARTIAL_WAKE_LOCK.
Из того, что я могу сказать, когда экран темнеет, датчики все еще отбираются (заставляя меня думать, что блокировка активна), но ни один из результатов не записывается на SDCard. Я думаю, что это то, что происходит, потому что, когда я снова активирую экран нажатием клавиши меню, в журнале на экране отображаются все переходы, которые имели место, когда экран был выключен. Но когда я смотрю на файл, созданный на SD-карте, в файле записываются только те переходы, которые произошли, когда экран был включен.
Что касается того, как я пишу файл, который я пробовал (я думаю, что я правильно говорю ...) FileWriter, обернутый в BufferedWriter, и FileWriter, обернутый в FileOutputStream.
Сначала датчик ориентации не работал, несмотря на то, что у меня была блокировка следа, пока я не изучил работу, где я добавил BroadcastReceiver для Intent.ACTION_SCREEN_OFF и когда я его получаю, я отменяю регистрацию слушателя ориентации, а затем повторно регистрирую его.
Нужно ли мне «отменить регистрацию» FileWriter и «перерегистрировать» его или что-то еще?
Странная часть в том, что выходной файл содержит все изменения ориентации до получения Intent.ACTION_SCREEN_OFF, и все они после Intent.ACTION_SCREEN_ON, когда я снова включаю экран, но ничего между ними нет.
Пишу для Android 1.6 (у меня G1)
Мой проект настроен на использование SDK 4