Принудительный выход
Как принудительно выйти из процедуры. Нужна реализация типа паскалевского exit.
|
Re: Принудительный выход
из процедуры вроде break
а из мидлета вообще - halt |
Re: Принудительный выход
break не совсем из процедуры, из текущего оператора.
|
Re: Принудительный выход
Кстати, сделал в одной проге выход по хальту, а она сцуко каждый раз по новой ресурсы распаковывает.
Нашел папку с её сейвами, а там куча одинаковых файлов со случайными именами. При том, что у меня там из ресурсов одна вавка на 70 с лишним килов, память съедается весьма успешно. Так что имхо лучше по человечески выходить. |
Re: Принудительный выход
Цитата:
HALT, насколько помню команда экстренного выхода. так что или не юзайте, или допишите процедуру очистки от мусора, которая выполняется при следующем после внештаного завершения запуске. |
Re: Принудительный выход
break - это оператор выхода из цикла. Если в процедуре только один цикл (что врядли), то этого хватит. В противном же случае придется вводить дополнительную флаговую переменную, в кот. будет хранится скажем true - надо выходить, false - не надо пока, и перед началом каждого цикла или блока операторов проверять эту переменную.
Кстати, RecordStore - очень любопытная вещь. Мало того, что она на разных телах реализуется немножко по-разному, так ещё и хитрозадые программеры каким-то макаром сохраняют туда не только строки текста, но и мелодии и картинки. |
Re: Принудительный выход
Про RecordStore: туда можно сохранить практически все. Ведь мелодия и картинка это тоже байтовый массив если разобраться.
|
Re: Принудительный выход
Цитата:
На основе кода на MP Код:
program x; Код:
|
Re: Принудительный выход
If true when this method is called, the MIDlet must cleanup and release all resources
Тоесть программа обязана убрать за собой перед завершением. |
Re: Принудительный выход
Цитата:
1. На основании тела программы/игры генерится числовое название папки, например 12345. 2. Папка размещается в системной папке Data:/System/java (папка скрытая) 3. В этой папке генерится файл RMS_RC.db, в котором хранятся названия разделов RecordStore и ссылки на файлы типа [email protected], [email protected] и т.п. в кот. и хрянятся ресурсы. Надо будет декомпильнуть пару тройку программ и посмотреть как они это делают. В идеале это даёт неплохой выигрыш по скорости при загрузке графики/мелодий, ведь в RecordStore они хранятся в незапакованном виде. Но для пользователей гимор - если удалить прогу, её RecordStore может остаться и засорять память телефона. |
Re: Принудительный выход
Помоему все это делается на уровне виртуальной машины или сразу при установке приложения.
|
Re: Принудительный выход
|
Re: Принудительный выход
если прога удаляется средствами системы телефона (а не всякими утилитами доступа к "диску" мобилки), то вместе с нею удаляются и файлы RS. А создаются они самой программой, файлы в системной папке - когда мы пишем в RecordStore - фактически пишем в те самые файлы... Система организует записи в виде базы данных - файл-индекс и файлы-таблицы записей, потому их всегда минимум 2...
Очень рекомендую при работе с RS при считывании контролировать целостность данных и сразу исправлять (т.е. перезаписывать значениями по дефолту), если они там некорректны... А то вот у программы ClimateControl это было не сделано, в результате однажды, когда связь с инетом была плохая, я ее вырубил принудительно, и в RS остались какие-то левые записи, после чего прога грузиться не захотела... Пришлось переустанавливать... |
Re: Принудительный выход
odd, это специфика хранения данных на семенах, не стоит их переносить на всех производителей.
ЗЫ: по-моему мы слегка ушли от темы :) |
Ответ: Принудительный выход
Ой наоффтопили.
Ну хотя бы goto кто-нибудь знает? :''(( |
Часовой пояс GMT +4, время: 20:23. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot