Java как войти программу

В Java приложениях, как я понимаю, существует единая точка входа для всего приложения в виде метода main , но этого метода нет в Android-приложениях. Как реализована единая точка входа в Android-приложениях и есть ли она?

Отслеживать
34.3k 15 15 золотых знаков 65 65 серебряных знаков 93 93 бронзовых знака
задан 17 фев 2017 в 9:02
8,420 3 3 золотых знака 23 23 серебряных знака 60 60 бронзовых знаков

6 ответов 6

Сортировка: Сброс на вариант по умолчанию

В андроид приложениях нет единой точки входа, как это делается например при помощи main() . Приложение может запускаться очень многими способами. Приложения, в зависимости от их функционала, могут состоять из разных компонент активити, сервисы.

«Обычным» способом, конечно же является точка входа через main активити, но она не всегда может быть единственной. Запуск того или иного компонента зависит от событий которые происходят в системе и от того, может ли приложение эти события обработать.

Например, сервис может «слушать» событие ACTION_BOOT_COMPLETED и обработав его запуститься сразу после загрузки операционной системы и т.п. Intent и BroadcastReceiver в плане выбора точки входа в приложение представляют довольно широкие возможности.

Как установить IntelliJ IDEA и сделать первую программу на Java

Отслеживать
34.3k 15 15 золотых знаков 65 65 серебряных знаков 93 93 бронзовых знака
ответ дан 17 фев 2017 в 9:46
1,918 9 9 серебряных знаков 15 15 бронзовых знаков
Но разве перед всеми действиями приложения не будет вызван Application#onCreate() ?
17 фев 2017 в 10:09

с точки зрения концептуального запуска приложения именно самой операционной системой, Вы конечно правы, но вот точка входа в само приложение, для дальнейшего выполнения его логики зависит от событий вызвавших его

17 фев 2017 в 10:54

С точки зрения GUI точкой входа является Activity промаркированная/обозначенная в манифесте как:

Документация )» data-controller=»se-share-sheet» data-se-share-sheet-title=»Поделиться ссылкой на ответ» data-se-share-sheet-subtitle=»» data-se-share-sheet-post-type=»answer» data-se-share-sheet-social=»facebook twitter » data-se-share-sheet-location=»2″ data-se-share-sheet-license-url=»https%3a%2f%2fcreativecommons.org%2flicenses%2fby-sa%2f3.0%2f» data-se-share-sheet-license-name=»CC BY-SA 3.0″ data-s-popover-placement=»bottom-start»>Поделиться )» title=»»>Улучшить ответ Отслеживать

ответ дан 17 фев 2017 в 9:20 BarmaleyBarmaley 81k 77 золотых знаков 7272 серебряных знака 153153 бронзовых знака

0

Добавить комментарий |

6

Для андроида используется класс Application и его метод onCreate(). При этом его надо прописать в манифесте.

)» data-controller=»se-share-sheet» data-se-share-sheet-title=»Поделиться ссылкой на ответ» data-se-share-sheet-subtitle=»» data-se-share-sheet-post-type=»answer» data-se-share-sheet-social=»facebook twitter » data-se-share-sheet-location=»2″ data-se-share-sheet-license-url=»https%3a%2f%2fcreativecommons.org%2flicenses%2fby-sa%2f3.0%2f» data-se-share-sheet-license-name=»CC BY-SA 3.0″ data-s-popover-placement=»bottom-start»>Поделиться )» title=»»>Улучшить ответ Отслеживать

Читайте также:
Через какую программу скачивать фильмы на компьютер

ответ дан 17 фев 2017 в 9:13 ЮрийСПб♦ЮрийСПб 69.8k 99 золотых знаков 6565 серебряных знаков 122122 бронзовых знака

Добавить комментарий |

3

Любое Activity помечено флагами в manifest как

category android_name=»android.intent.category.LAUNCHER» action android:name mt24″> )» data-controller=»se-share-sheet» data-se-share-sheet-title=»Поделиться ссылкой на ответ» data-se-share-sheet-subtitle=»» data-se-share-sheet-post-type=»answer» data-se-share-sheet-social=»facebook twitter » data-se-share-sheet-location=»2″ data-se-share-sheet-license-url=»https%3a%2f%2fcreativecommons.org%2flicenses%2fby-sa%2f3.0%2f» data-se-share-sheet-license-name=»CC BY-SA 3.0″ data-s-popover-placement=»bottom-start»>Поделиться )» title=»»>Улучшить ответ Отслеживать

)»>изменён 27 фев 2017 в 12:10 zTrap 2,710 1010 серебряных знаков 3131 бронзовый знак

ответ дан 26 фев 2017 в 18:01 user6068255user6068255 31 11 бронзовый знак

Добавить комментарий |

2

<

div >

<

div itemprop=»text»>

Android-приложение модульное и может включать в себя service-ы, reciever-ы и прочие элементы, которые могут запускаться до activity или отдельно от них.

В зависимости от задачи вам может подойти простой вариант- onCreate метод Activity указанной как

И отнаследовать приложения от Application или аналогичного

Источник: ru.stackoverflow.com

#12 — Авторизация в приложении

#12 - Авторизация в приложении

Чтобы авторизовать пользователя необходимо выбрать значения из базы данных, проверить есть ли такой пользователь и в случае успеха выполнить авторизацию. В уроке мы научимся выбирать данные и авторизовывать пользователя, если таковой имеется.

Видеоурок

Для авторизации пользователя необходимо выбирать значения из базы данных, перебирать их и проверять на соответствие введенным данным. Сделать такое можно при помощи специального SQL-запроса, что вернет массив полученных данных в формате класса ResultSet .

Запрос к базе данных схож с предыдущим запросом из прошлого урока. Единственная разница заключается в методе выполнения самого запроса.

Полученные значения можно перебирать через цикл:

ResultSet result = dbHandler.getUser(user); try < while(result.next()) < // Получаем имя пользователей String name = result.getString(«firstname»); System.out.println(«User name is — » + name); >> catch (SQLException e)

Источник: itproger.com

Русские Блоги

FileInputStream fis = new FileInputStream(file);
InputStream: это суперкласс всех байтовых входных потоков, и обычно используются его подклассы: FileInputStream и т. д., которые могут выводить байтовые потоки;

InputStreamReader isr = new InputStreamReader(fis,“utf-8”);
InputStreamReader: это мост между потоком байтов и потоком символов, может выводить поток байтов как поток символов и может указывать набор символов для потока байтов и может выводить отдельные символы ;

BufferedReader br = new BufferedReader(isr);
BufferedReader: обеспечивает общее чтение буферизованного текста, readLine считывает текстовую строку, считывает текст из потока ввода символов, буферизует каждый символ, тем самым обеспечивая эффективный символ, массив и строку Читать.

Читайте также:
Какой программой открыть gpx

br.readLine () метод чтения

line.equals () метод сравнения строк

FileWriter fw = new FileWriter(“D:user.txt”,true);
// Создаем объект класса потока вывода символов и связываем его с существующим файлом. Если файл не существует, создайте его.
// Добавление true означает, что, когда fw снова запишет файл, он продолжит запись в конец файла и не будет его перезаписывать.

fw.write (str + » n»); Метод записи

2. Напишите общее представление о связанных функциях:

То есть определить, существует ли имя пользователя при регистрации, в противном случае запишите имя пользователя и пароль в текстовый файл и оцените, правильны ли имя пользователя и пароль при входе в систему, если да, то вход в систему успешен

Нужна функция регистрации UserRegister (), отвечающая за оценку успешности регистрации;
требует функции входа в систему UserLogin (), которая отвечает за оценку успешности входа;
Нужна функция IsUserExist (), чтобы определять, существует ли имя пользователя во время регистрации;
Нужна функция WriteInFile (), которая записывает имя пользователя и пароль в txt при регистрации;
Функция IsFileExist (), которая должна определить, существует ли текстовый файл в начале;

Затем конкретный код:

public static boolean IsUserExist(File file , String username) throws IOException boolean flag = false; try FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis,»utf-8″); BufferedReader br = new BufferedReader(isr); String line = «»; while((line = br.readLine())!=null) // Читаем каждую строку br и обновляем строку каждый раз if(line.equals(«un»+username)) flag = true; break; > > br.close(); // Завершаем доступ к файлу isr.close(); fis.close(); > catch (FileNotFoundException e) // TODO Auto-generated catch block e.printStackTrace(); > return flag; > // Записывать имя пользователя или пароль отдельно, то есть каждый раз записывать строку символов public static void WriteInFile(File file,String str) try FileWriter fw = new FileWriter(file,true); fw.write(str+»n»); fw.close(); > catch (IOException e) // TODO Auto-generated catch block e.printStackTrace(); > > // зарегистрирован static void UserRegister(File file,String username, String passwd) throws IOException if(!IsUserExist(file, «un»+username)) // Определяем, существует ли имя пользователя WriteInFile(file, «un»+username);// Записываем имя пользователя WriteInFile(file, «pw»+passwd);// Записываем пароль System.out.println(«Вы успешно зарегистрировались»); >else System.out.println(«Имя пользователя уже зарегистрировано»); > > //авторизоваться public static void UserLogin(File file,String username,String passwd) throws IOException FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis,»utf-8″); BufferedReader br = new BufferedReader(isr); //System.out.println(4); String line = «»; // if (IsUserExist (file, «un» + username)) // System.out.println(1); while((line = br.readLine())!=null) //// Прочтите каждую строку br и обновляйте строку каждый раз if(line.equals(«un»+username)) // Находим правильное имя пользователя if(br.readLine().equals(«pw»+passwd)) // Получив правильное имя пользователя, оцениваем правильность пароля System.out.println(«Авторизация успешна»); break; >else System.out.println(«неправильный пароль»); break; > > > br.close(); // Завершаем доступ к файлу isr.close(); fis.close(); //else // System.out.println(); //> > >
// Определяем, существует ли файл, в противном случае создаем его public static void IsFileExist(File file) //boolean flag = false; if (!file.exists()) try file.createNewFile(); System.out.println(1); > catch (IOException e) // TODO Auto-generated catch block e.printStackTrace(); > > // System.out.println(2); // return flag; >

Читайте также:
Как получить партнерскую программу

На основе предыдущих функций в сочетании с javafx:
Относительно просто использовать макет GridPane для отслеживания действий кнопок входа и регистрации.

Обобщите вещи в оконной химии:
1. Прежде всего, это должно быть использование сетки, например:
pane.add () добавляет элементы на панель
Есть инструкции по обработке местоположения добавленных нами вещей (хотя их все еще много, и я этого не понимаю)
pane.setAlignment( Pos.CENTER);
pane.setPadding(new Insets(16,17,18,19));
pane.setHgap(5.5);
pane.setVgap(9.5);
GridPane.setHalignment(login, HPos.RIGHT);
GridPane.setHalignment(register, HPos.RIGHT);

2. Есть эти два
TextField usertext = new TextField();
PasswordField pwtext = new PasswordField();
прочтите буквальное значение, одно — это видимое содержимое записи, а другое превратит вас в черную точку при написании, как мы обычно вводим пароль.

3. Наконец, использование стадии:
Scene scene = new Scene(pane);
primaryStage.setTitle («Интерфейс входа в систему»);
primaryStage.setScene(scene);
primaryStage.show();
Последнее предложение — открыть окно, эта часть немного похожа на макет Android

Далее идет общий код:

Ошибки в реализации функции раньше: (пока не понял)

1. Определите, существует ли имя пользователя, а оператор if не может существовать.

2. fw.close () должен существовать

Опыт:
Сначала мне показалось, что это гигантская задача, но позже она стала яснее после разделения небольших функций.
Я не знаю, не знаю ли я или не знаком с некоторыми конкретными функциями реализации, я действительно могу полагаться только на информацию в Интернете.
При написании этого кода я сначала нашел пример кода в Интернете. Прочитав его полностью,
Затем напишите свои собственные идеи и постепенно улучшайте код. Если вы не понимаете его, прочтите еще раз и, наконец,
был реализован, и я чувствую, что многого удалось добиться.

Источник: russianblogs.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru