Отговори на тема  [ 9 мнения ] 
J2ME 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение J2ME
Има ли почва за J2ME тук...


Пон Ное 07, 2005 12:09 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
Има, разбира се. :)


Пон Ное 07, 2005 12:15 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
Тогава задавам въпроса...
имам клас public class Project extends MIDlet implements CommandListener
които има class Logo extends Canvas implements Runable
което Logo показва логото за 2 сек после изписва LIST:

Application 1....(extends MIDlet implements CommandListener)
Application 2....(extends MIDlet implements CommandListener)
Exit

Въпроса е как да стартирам Аplication 1


Пон Ное 07, 2005 12:29 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пет Мар 18, 2005 4:14 pm
Мнения: 67
Местоположение: Русе.BG/Oldenburg.DE
Мнение 
Не можеш да invoke-ваш други MIDlets. :D
Направи го така:

Application1MainDisplayable (extends Form/Canvas implements <whatever> )

run-ваш с:

Display.getDisplay(thisMidlet).setCurrent(Application1MainDisplayable);

после exit-а става:

{
runFinalizationRoutines(); //ако има такива
Display.getDisplay(thisMidlet).setCurrent(AppListDisplayable);
}

където AppListDisplayable ти е обекта, с който показваш списъка с приложенията. ( javax.microedition.lcdui.List, няква form-а или там каквото е )

в runFinalizationRoutines() можеш да спираш нишки разни, да затваряш socket-и, да освобождаваш мултимедийни ресурси, etc.

Другото е, че в цялото приложение ще ти трябва instance-а на главния MIDlet заради Display.getDisplay() . (това предполагам го знаеш, ама ще го напиша)

Значи най-удобно става с, един вид, singleton:

public class MainMIDlet extends MIDlet {

public static MainMIDlet instance;

public MainMIDlet() {
instance = this;
}

.......
}

В този случай thisMidlet от по-горе става MainMIDlet.instance .

! Недей да викаш constructor-a на MainMIDlet от кода си, обекта се създава от платформата !

Всъщност ако толкова ти трябват отделни MIDlet-и, можеш да ги наблъскаш в MIDlet suite-a, т.е:

в .jar-a са няколкото MIDlet class-а, а .jad-а съдържа списъка, например :

MIDlet-1: Application1, /res/icons/App1Icon.png, applications.Application1MainMIDlet
MIDlet-2: Application2, /res/icons/App12con.png, applications.Application2MainMIDlet

По този начин, обаче application manager-a на телефона поема изрисуването на менюто, т.е splash sceen-a няма как да го покажеш, защото в този момент твой код все още не е стартиран.


P.S : Интересно ми е какво пишеш, ако не е тайна, разбира се. :wink:


Пон Ное 07, 2005 5:23 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
аха - направих ги class App1 extends Form
за application manager-a знам - не пуска сплаша
Мерси...


Пон Ное 07, 2005 5:51 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
Въпрос 2
компилатора ми дава грешка на
I = Image.createImage("/LOGO.PNG");
че не било в блок TRY CATCH
try{ I = Image.createImage("/LOGO.PNG"); }catch(Exception e){}

има ли опция в компилатора да се махне да не дава грешка и да го компилира без TRY блок


Сря Ное 09, 2005 12:03 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пет Мар 18, 2005 4:14 pm
Мнения: 67
Местоположение: Русе.BG/Oldenburg.DE
Мнение 
Не, няма начин. Това е checked exception (както впрочем, всички, които не наследяват RuntimeException) и е в спецификата на езика тези exceptions да бъдат задължително хващани или препращани към викащия метод ( което става с добавяне на throws към сигнатурата на метода; например
Код:
public void somethingCanGoWrongHere() throws SomethingWentWrongException { ... }


Ако нямаш предвид някаква обработка на NullPointerException-a (тази не изисква да бъде хващана; можеш да оставиш виртуалната машина да се оправя) или на IOException-а (заради тази компилатора се сърди), които CreateImage(String resourceName) може да хвърли, просто остави catch блока празен. Exception-а ще се смята за обработен и компилаторът няма да бучи.
Аз лично бих null-ирал I особено ако съм ползвал същия поинтер, за да се обръщам към други Image-и по рано в кода и ако съм в настроение: Display.getDisplay(MainMIDlet.instance).setCurrent( new Alert("error loading splash screen") , this); :wink:


Сря Ное 09, 2005 9:00 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
Хмм, нещо почвам да я намразвам джабата :)..... и на всичкото отгоре char не е 8 byte а 16 - направо ме разбиха :)
0х00 мерси за съдействието - пак ще питам да знаеш :)


Чет Ное 10, 2005 11:48 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
МЕ търси LG 8xxx J2ME SDK
сички страници обърна на опаки, писа и на LG и нема да ги е.....
Ама все пак да пита и тук


Пон Ное 14, 2005 4:51 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 9 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни