Форум программистов, компьютерный форум CyberForum.ru

Сразу после нажатия Power вызывается OnCreate. Почему? - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Не корректная работа свернуть-развернуть приложение http://www.cyberforum.ru/android-dev/thread1694082.html
Здравствуйте. Я пишу ANE расширение для своего Air приложения. Работаю в эклипсе. Суть проекта в данной теме не важна, так как работает все, кроме ниже оговоренного. Код, который помогает свернуть приложение. _cntx.getActivity().moveTaskToBack(true);
Android CountDownTimer запуск в цикле У меня есть класс где я реализовал таймер: package com.lineup.intervaltimer; import android.os.CountDownTimer; public class Timer { private int time; //time in millies private final int millisPerSeconds = 1000; private CountDownTimer timer; http://www.cyberforum.ru/android-dev/thread1693954.html
Действие при сворачивании или при выходе Android
Добрый вечер. Вот такой небольшой вопрос. Какими действиями можно сделать так, чтобы к примеру когда пользователь сворачивал приложение выполнялись одни действия а при выходе из программы другие. Попытаюсь объяснить понятнее.
По поводу ListView, LinearLayout? Android
Скажите пожалуйста, люди добрые, как в Android Stiduo сделать таблицу для расписания занятий по группам или классам? Очень нужно, а не как не получается.(((( Если можно, киньте пару ссылок или напишите суда, как это можно реализовать ( поэтапно) . Заранее благодарю за помощь.
Android Работаю над созданием мастера паролей, как обеспечить его безопасность? http://www.cyberforum.ru/android-dev/thread1693785.html
Здравствуйте, уважаемые программисты! Я работаю над созданием своего мастера паролей для одного конкурса. Чтобы хранить пароли безопасно, я придумал скачивать ключи от шифров программы с ftp хостинга, но вот незадача, если злоумышленник взломает код программы, он легко сможет увидеть пароль и логин от хостинга! Как решить эту проблему? Нужно устанавливать защиту от взлома кода или...
Android Не вижу абстрактных методов в классе BaseAdapter Когда создаю свой класс, наследующий BaseAdapter, требуется реализовать 4 абстрактных метода: getCount(), getItem(), getItemId, getView. Вопрос:почему в классе BaseAdapter нету этих методов?? Они не прописаны там! подробнее

Показать сообщение отдельно
VV0lk
11 / 1 / 0
Регистрация: 25.12.2011
Сообщений: 169
25.03.2016, 16:58  [ТС]     Сразу после нажатия Power вызывается OnCreate. Почему?
в коде создается wakelock
он где в onpause/stop срабатывает? wakeLock.acquire(); например
Он включаеться потом в одном фрагменте, а выключается в другом. Но да это не важно, я думаю. Т.к. я для проверки создал новый проект, в котором 3-класса:
MainActyvity
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[Activity (Label = "Test_TabApp", MainLauncher = true, Icon = "@mipmap/icon",ScreenOrientation= Android.Content.PM.ScreenOrientation.Landscape)]
    public class MainActivity : TabActivity
    {
        
        protected override void OnCreate (Bundle savedInstanceState)
        {
            base.OnCreate (savedInstanceState);
            this.RequestWindowFeature (WindowFeatures.NoTitle); //Создать вьюху без заголовка
 
            SetContentView (TabHost);
            CreateTab(typeof(Connect_Activity), "Подключение",     "Подключение");
            CreateTab(typeof(Main_Input_data_Activity), "Главная", "Главная");
        }
 
 
        private void CreateTab(Type activityType, string tag, string label)  //, int drawableId)
        {
            var intent = new Intent(this, activityType);
            intent.AddFlags(ActivityFlags.NewTask);
            var spec = TabHost.NewTabSpec(tag);
            spec.SetIndicator(label); //, drawableIcon);
            spec.SetContent(intent);
            TabHost.AddTab(spec);
        }
 
 
    }

Connect_Activity
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
[Activity]
    public class Connect_Activity : Activity
    {
        
 
        protected override void OnCreate (Bundle bundle)
        {
            base.OnCreate (bundle);
            SetContentView (Resource.Layout.Connect_act);
        }
            
    }

и Main_Input_data_Activity
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
[Activity]  
    public class Main_Input_data_Activity  : Activity
    {
 
        protected override void OnCreate (Bundle bundle)
        {
            base.OnCreate (bundle);
            SetContentView (Resource.Layout.Input_dat_act);
 
        }
 
    }

В которых нет ничего! И всё равно наблюдаю такой-же эффект! Нажимая power в строке
C#
1
SetContentView (Resource.Layout.Connect_act);
Сразу вижу исключение Android.Content.Res.Resources+NotFoundException
Кликните здесь для просмотра всего текста
Android.Content.Res.Resources+NotFoundException: Resource ID #0x7f030000
at android.content.res.Resources$NotFoundException: Resource ID #0x7f030000
at at android.content.res.Resources.getValue(Resources.java:1163)
at at android.content.res.Resources.loadXmlResourceParser(Resources.java:2349)
at at android.content.res.Resources.getLayout(Resources.java:979)
at at android.view.LayoutInflater.inflate(LayoutInflater.java:395)
at at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:315)
at at android.app.Activity.setContentView(Activity.java:1973)
at at md5c62c62cec7e539e725691719b812cf8e.Connect_Activity.n_onCreate(Native Method)
at at md5c62c62cec7e539e725691719b812cf8e.Connect_Activity.onCreate(Connect_Activity.java:28)
at at android.app.Activity.performCreate(Activity.java:5275)
at at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2166)
at at android.app.ActivityThread.startActivityNow(ActivityThread.java:2040)
at at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
at at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
at at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:749)
at at android.widget.TabHost.setCurrentTab(TabHost.java:413)
at at android.widget.TabHost.addTab(TabHost.java:240)
at at md5c62c62cec7e539e725691719b812cf8e.MainActivity.n_onCreate(Native Method)
at at md5c62c62cec7e539e725691719b812cf8e.MainActivity.onCreate(MainActivity.java:28)
at at android.app.Activity.performCreate(Activity.java:5275)
at at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2166)
at at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252)
at at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3757)
at at android.app.ActivityThread.access$900(ActivityThread.java:139)
at at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206)
at at android.os.Handler.dispatchMessage(Handler.java:102)
at at android.os.Looper.loop(Looper.java:136)
at at android.app.ActivityThread.main(ActivityThread.java:5103)
at at java.lang.reflect.Method.invokeNative(Native Method)
at at java.lang.reflect.Method.invoke(Method.java:515)
at at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
at at dalvik.system.NativeStart.main(Native Method)


Добавлено через 8 минут
Один в один, практически, как в этом примере: https://developer.xamarin.com/guides...g_a_tabbed_ui/

Добавлено через 1 час 8 минут
Нашел в чем беда! Во всём виновата строка
C#
1
ScreenOrientation= Android.Content.PM.ScreenOrientation.Landscape
Убираю её, всё нормально. Тушу экран, возобновляю, всё остается на своих местах, OnCreate не вызывается. Теберь буду думать как это победить, т.к. мне надо, чтобы приложение было только в горизонтальном виде. Если оставляю только папку layout-land, то ругается на SetContentView (Resource.Layout.Main); не видет ресурсы...

Добавлено через 39 минут
Так. Ну вроде разобрался!... Значит получается так: когда программа запущена в портретной ориентации, то нажатие power не вызывает OnCreate и даже все данные остаются на месте. А когда в горизонтальном виде нажимаешь, то OnCreate вызывается и ищет ресурсы в папке layout, а их там у меня нет, они все в папке layout-land - отсюда и исключения. Сейчас перенес все ресурсы из layout-land в layout, из layout-large-land в layout-large и т.д. и оставил
C#
1
ScreenOrientation= Android.Content.PM.ScreenOrientation.Landscape
И всё работает нормально. Вылетать перестало. Теперь осталось придумать как вообще избежать этого перезапуска и почему он возникает только при горизонтальном расположении?! (а то все подключенные по BT устройства отваливаются и их по новой надо подключать, а разруливать это труднее, чем избежать повторного OnCreate, покрайне мери пока мне так кажеться...)
 
Текущее время: 22:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru