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

Кнопка "домой", смена ориентации и прочее :) - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Большое количество итемов в listView! http://www.cyberforum.ru/android-dev/thread544354.html
При выводе большого количества итемов в listView, используя адаптор, столкнулся с проблемой переполнения памяти. Загуглив, нашел некоторые варианты решений. Как вы фиксите это? Какой на ваш взгляд самый оптимальный способ?
Android Определение размеров экрана устройства Хочу отцентрировать несколько кнопок на Activity. Кнопки кидаю в контейнер. LinearLayout myContainer = new LinearLayout(this); myContainer.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); myContainer.setOrientation(LinearLayout.VERTICAL); //создание нескльких кнопок setContentView(myContainer); Чтобы кнопки отцентрировать надо получить ширину... http://www.cyberforum.ru/android-dev/thread544249.html
Android Отловить нажатие кнопки Home
Всем привет! Как отловить нажатие кнопки Home. В onKeyDown не получается.... Какие ещё варианты?
Доступ к БД из другого Activity. Android
Очередной нубский вопрос. В главном активити есть dbHelper. Все хорошо. Хочу в одном активити показать результат запроса в виде таблицы, а в другом в виде графика. Такой код, естественно, не компилируется: public void onClick(View v) { Intent intent = new Intent("android.intent.action.WeightAsTable"); intent.putExtra("db", dbHelper); ...
Android Как загрузить в эмулятор .xml файл http://www.cyberforum.ru/android-dev/thread544027.html
ДОбрый день, подскажите пожалуйста, есть основа приложения с кнопкой "каталог" есть хмл файл в котором много всего и он отдельно, надо его в проект как-то вставить запускаю эмулятор, перехожу в режим ддмс, вкладку файл эксплорер, нажимаю на push file onto device ...ничего не меняется может я вообще не так надо делать upload? спасибо
Android gsm шлюз под андроидом задача такая, я подконекчиваюсь к мобиле од андроидом по wifi и хочу с компа заставить свою мобилу позвонить а главное на мои комп переслать голос, то есть выступить в роли шлюза, вот как реализоать ет функцию ума не приложу, подскажите гуру в какую сторону курить подробнее

Показать сообщение отдельно
aaleksander
110 / 84 / 1
Регистрация: 06.06.2011
Сообщений: 397
Записей в блоге: 1

Кнопка "домой", смена ориентации и прочее :) - Android

11.04.2012, 11:43. Просмотров 3858. Ответов 4
Метки (Все метки)

Добрый вечер уважаемые.
не могу решить вот такую проблему:
Сделал пример отсюда: http://megadarja.blogspot.com/2009/0...1-surface.html

Там к комментариях правильно сказано, что если нажать домой, то при повторном запуске, приложение валится с ошибкой.
Сделал у активи с поверхностью метод:
Java
1
2
3
4
5
    @Override
    public void onStop(){
        super.onStop();
        finish();
    }
Падать перестала, но зато теперь эквити при смене ориентации экрана выходит в эту процедуру и, естественно завершает работу.
Т.е. получается такая ситуация: у меня в программе в главном эквити (оно же меню) есть кнопка "Показать как график". Я её жму, попадаю на график, поворачиваю телефон и вновь оказываюсь в главном меню.
Если onStop убрать, то поверхность перерисовывается согласно ориентации экрана, но зато валится при повторном запуске.
Подскажите, какое условие нужно поставить в onStop, чтобы эквити знало, что я просто повернул телефон, а не нажал кнопку "домой".

Спасибо.

Добавлено через 17 часов 58 минут
Кое-что вырисовывается.
Выдает такую ошибку:
java.lang.IllegalThreadStateException: Thread already started.
at java.lang.Thread.start(Thread.java:1322)
at com.android.graph.Chart.surfaceCreated(Chart.java:55)
at android.view.SurfaceView.updateWindow(SurfaceView.java:532)
at android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:206)
at android.view.View.dispatchWindowVisibilityChanged(View.java:3891)
Т.е. повторно пытается запустить поток для рисования.
Переделал процедуру запуска вот так:
Java
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
    @Override
    public void surfaceCreated(SurfaceHolder holder)
    {//запускаем поток рисования
        if( mThread.getRunning() == false ){
            mThread.setRunning(true);
            mThread.start();    <-------вот тут падает
        }
    }
 
    @Override
    public void surfaceDestroyed(SurfaceHolder holder)
    {//прибиваем поток рисования
        boolean retry = true;
        mThread.setRunning(false);
        while (retry)
        {
            try
            {
                // ожидание завершение потока
                mThread.join();
                retry = false;
            }
            catch (InterruptedException e) { }
        }       
    }
Но проблемма осталась. Т.е. getRunning возвращает false, и пытается запустить уже запущенный поток.

Поток вроде тоже реализован правильно:
Java
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
        /**
         * Задание состояния потока
         * @param running
         */
        public void setRunning(boolean running)
        {
            mRunning = running;
        }
        
        public boolean getRunning()
        {
            return mRunning;
        }
 
        @Override
        /** Действия, выполняемые в потоке */
        public void run()
        {
            while (mRunning)
            {
                Canvas canvas = null;
                try
                {
                    // подготовка Canvas-а
                    canvas = mSurfaceHolder.lockCanvas();
                    synchronized (mSurfaceHolder)
                    {
                        // собственно рисование
                        draw(canvas);                        
                    }
                }
                catch (Exception e) { }
                finally
                {
                    if (canvas != null)
                    {
                        mSurfaceHolder.unlockCanvasAndPost(canvas);
                    }
                }
            }
        }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru