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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
name?
198 / 169 / 18
Регистрация: 01.06.2010
Сообщений: 371
Завершенные тесты: 1
#1

долгая загрузка - Программирование Android

16.07.2013, 01:18. Просмотров 1269. Ответов 3
Метки нет (Все метки)

Пишу игрушку и проблема в том что контент грузиться 4-5 секунд
работающий вариант
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
public class MainActivity extends Activity {
 
    private WorldController controller;
    private MenuController menuController;
    private boolean isGame;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
 
        menuController = new MenuController(new Menu(), new MenuRenderer(this),
                this);
        
        setContentView(menuController.view);
        createController();
        
    }
 
    public void createController(){
        if(controller == null){
            controller = new WorldController(new World(new LevelReader(
                    getResources().openRawResource(R.raw.lvl_1))),
                    new WorldRenderer(this));
        }
 
    }
    
    
    public void startGame() {
        isGame = true;
        controller.startGame();
        setContentView(controller.view);
    }
Решил сделать загрузку пока будет грузиться контент
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
public class MainActivity extends Activity{
 
    private static WorldController controller;
    private static MenuController menuController;
    
    private WorldRenderer view;
    private World world;
    
    private boolean isGame;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
 
        Loading loading = new Loading(this,this);
        setContentView(loading);
 
    }
 
 
    public void createController(){
        controller = new WorldController(world, view);
        
    }
    
    public void startGame() {
        isGame = true;
        controller.startGame();
        setContentView(controller.view);
    }
    
    public void createMenu() {
        menuController = new MenuController();
    }
    public void showMenu(){
        setContentView(menuController.view);
    }
 
 
 
    public boolean getFlag(){
        if ( menuController !=null && controller !=null){
            return true;
        }
        else return false;
    }
}
 
и класс лоад
public class Loading extends View{
 
    public Loading(Context context,MainActivity mainActivity) {
        super(context);
        this.context = context;
        this.mainActivity = mainActivity;
        this.mainTimer = new Timer();
        mainTimer.schedule(timerMain, 1, 50);
        
    }
    boolean create = false;
    boolean one = false;
    TimerTask timerMain = new TimerTask() {
        public void run() {
            if (!create){
                mainActivity.createMenu();
                mainActivity.createController();
                one = true;
                create=true;
            }
            if(one && mainActivity.getFlag())
                mainActivity.showMenu();
                one=false;
                }
    };
    private MainActivity mainActivity;
    private Timer mainTimer;
    public Context context;
 
    @Override
    protected void onDraw(Canvas canvas) {
        drawName();
        super.onDraw(canvas);
        invalidate();
    }
}
но приложение летит не понятно почему = ( так же был вариант с потоком и все тоже закончилось тоже неудачей...
У кого какие идеи как это правильно сделать? или может где-то допустил ошибку?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2013, 01:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос долгая загрузка (Программирование Android):

Долгая загрузка. - Windows XP
В последнее время у меня проходит достаточно долгий период времени перед появлением рабочего стола после надписи "Добро пожаловать".Может...

MySQL Долгая загрузка БД - PHP БД
Здравствуйте. Использую БД MySQL для хранения данных страницы, чтобы их отображать, делаю так: <?php $page_name=$_GET; ...

Долгая загрузка пк - Материнские платы
При вставке новой видеокарты (http://www.citilink.ru/catalog/parts/videocards/722914/) не загружается биос. Т.е сначала комп грузиться...

Долгая загрузка ПК - Windows XP
включаю ПК, идет тестирование,появляетса слеш (_) и мигает 1,5 минуты, а потом как ни вчем не бывало загружаетса ХР но потом рабочий стол...

Долгая загрузка.. - Windows XP
вот такая ситуация, виндовс включается, появляется рабочий стол, и приходится ждать примерно 1 минуту чтоб можно было включить интернет, до...

Долгая загрузка - BIOS
Здравствуйте, господа. Принесли мне тут один комп с проблемкой. Проблемка заключается в том, что при включении компьютера проходит...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.07.2013, 01:20 #2
длительные загрузки нужно выносить в отдельный поток.
1
name?
198 / 169 / 18
Регистрация: 01.06.2010
Сообщений: 371
Завершенные тесты: 1
16.07.2013, 10:49  [ТС] #3
весь класс
Кликните здесь для просмотра всего текста
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
public class MainActivity extends Activity implements Runnable{
 
    private static WorldController controller;
    private static MenuController menuController;
    
    private World world;
    
    private Timer mainTimer;
    
    private boolean isGame;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
 
        controller=null;
        
        Thread thread = new Thread(this);
        thread.start();
 
        Loading loading = new Loading(this,this);
        createMenu();
        
        this.mainTimer = new Timer();
        mainTimer.schedule(timerMain, 1, 50);
  
        setContentView(loading);
     }
 
    
    boolean one = true;
    TimerTask timerMain = new TimerTask() {
        public void run() { 
            if(one &&  getFlag()){
                showMenu();
                one=false;
                }
                }
    };
    
    public void createController(){
        createWorld();
        controller = new WorldController(world, new WorldRenderer(this));
    }
    
    public void startGame() {
        isGame = true;
        controller.startGame();
        setContentView(controller.view);
    }
    
    public void createMenu() {
        menuController = new MenuController(new Menu(), new MenuRenderer(this),
                this);
 
    }
    public void showMenu(){
        setContentView(menuController.view);
    }
 
    public boolean getFlag(){
 
        if ( controller != null ){
            return true;
        }
        else return false;
    }
 
    @Override
    public void run() {
        createController();
        return;
    }
}


кто-то сталкивался с такой ошибкой ?
Java
1
Unknown binder error code. 0xfffffff7
весь Log
Кликните здесь для просмотра всего текста
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
07-16 08:41:43.191: VERBOSE/mainActivity(6470): create activity
07-16 08:41:43.201: VERBOSE/mainActivity(6470): run thread
07-16 08:41:43.201: VERBOSE/mainActivity(6470): create controller
07-16 08:41:43.221: VERBOSE/Loading(6470): create loading
07-16 08:41:43.221: VERBOSE/mainActivity(6470): create menu
07-16 08:41:43.241: VERBOSE/mainActivity(6470): create menu done
07-16 08:41:43.251: VERBOSE/mainActivity(6470): getflag
07-16 08:41:43.321: VERBOSE/TabletStatusBar(205): setLightsOn(true)
07-16 08:41:43.751: VERBOSE/mainActivity(6470): getflag
07-16 08:41:44.251: VERBOSE/mainActivity(6470): getflag
07-16 08:41:44.751: VERBOSE/mainActivity(6470): getflag
07-16 08:41:45.251: VERBOSE/mainActivity(6470): getflag
07-16 08:41:50.971: VERBOSE/mainActivity(6470): create controller done
07-16 08:41:51.011: DEBUG/dalvikvm(6470): GC_CONCURRENT freed 217K, 13% free 6026K/6919K, paused 2ms+2ms
07-16 08:41:51.251: VERBOSE/mainActivity(6470): getflag
07-16 08:41:51.251: VERBOSE/mainActivity(6470): timer run showmenu
07-16 08:41:51.251: VERBOSE/mainActivity(6470): showmenu 
07-16 08:41:51.251: WARN/dalvikvm(6470): threadid=12: thread exiting with uncaught exception (group=0x40a301f8)
07-16 08:41:51.261: ERROR/AndroidRuntime(6470): FATAL EXCEPTION: Timer-0
07-16 08:41:51.261: ERROR/AndroidRuntime(6470): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
07-16 08:41:51.261: ERROR/AndroidRuntime(6470):     at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4050)
07-16 08:41:51.261: ERROR/AndroidRuntime(6470):     at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:709)
07-16 08:41:51.261: ERROR/AndroidRuntime(6470):     at android.view.View.requestLayout(View.java:12677)
07-16 08:41:51.261: ERROR/AndroidRuntime(6470):     at android.view.View.requestLayout(View.java:12677)
07-16 08:41:51.261: ERROR/AndroidRuntime(6470):     at android.view.View.requestLayout(View.java:12677)
07-16 08:41:51.261: ERROR/AndroidRuntime(6470):     at android.view.ViewGroup.removeAllViews(ViewGroup.java:3673)
07-16 08:41:51.261: ERROR/AndroidRuntime(6470):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:268)
07-16 08:41:51.261: ERROR/AndroidRuntime(6470):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:260)
07-16 08:41:51.261: ERROR/AndroidRuntime(6470):     at android.app.Activity.setContentView(Activity.java:1855)
07-16 08:41:51.261: ERROR/AndroidRuntime(6470):     at com.example.test.MainActivity.showMenu(MainActivity.java:100)
07-16 08:41:51.261: ERROR/AndroidRuntime(6470):     at com.example.test.MainActivity$1.run(MainActivity.java:62)
07-16 08:41:51.261: ERROR/AndroidRuntime(6470):     at java.util.Timer$TimerImpl.run(Timer.java:284)
07-16 08:41:51.281: WARN/ActivityManager(131):   Force finishing activity com.example.test/.MainActivity
07-16 08:41:51.361: DEBUG/gralloc(71): alloc_buffer: Successfully allocated 0x15e000 bytes, mIonFd=22, SharedFd=16
07-16 08:41:51.361: INFO/WindowManager(131): Using new display size: 480x800
07-16 08:41:51.411: DEBUG/gralloc(316): map_buffer: Successfully mapped 0x15e000 bytes at address 0x603a3000, SharedFd=54, map_count = 1
07-16 08:41:51.521: DEBUG/gralloc(6470): unmap_buffer: Successfully unmapped 0x15e000 bytes at address 0x5bb1d000, SharedFd=53, map_count = 1
07-16 08:41:51.521: DEBUG/gralloc(71): free_buffer: Freeing 0x15e000 bytes, mIonFd=22 SharedFd=30
07-16 08:41:51.521: DEBUG/gralloc(71): unmap_buffer: Successfully unmapped 0x15e000 bytes at address 0x465c3000, SharedFd=30, map_count = 5
07-16 08:41:51.521: DEBUG/gralloc(6470): unmap_buffer: Successfully unmapped 0x15e000 bytes at address 0x5b8bf000, SharedFd=48, map_count = 0
07-16 08:41:51.521: DEBUG/dalvikvm(316): GC_CONCURRENT freed 398K, 38% free 7008K/11143K, paused 2ms+36ms
07-16 08:41:51.541: DEBUG/gralloc(71): alloc_buffer: Successfully allocated 0x29000 bytes, mIonFd=22, SharedFd=23
07-16 08:41:51.541: DEBUG/gralloc(131): map_buffer: Successfully mapped 0x29000 bytes at address 0x5eb9a000, SharedFd=230, map_count = 1
07-16 08:41:51.991: DEBUG/gralloc(71): free_buffer: Freeing 0x15e000 bytes, mIonFd=22 SharedFd=29
07-16 08:41:51.991: DEBUG/gralloc(71): unmap_buffer: Successfully unmapped 0x15e000 bytes at address 0x45fbd000, SharedFd=29, map_count = 5
07-16 08:41:51.991: DEBUG/ConnectivityService(131): onUidRulesChanged(uid=10063, uidRules=0)
07-16 08:41:52.001: ERROR/JavaBinder(6470): Unknown binder error code. 0xfffffff7
07-16 08:41:52.011: INFO/Process(6470): Sending signal. PID: 6470 SIG: 9
07-16 08:41:52.011: ERROR/AndroidRuntime(6470): Error reporting crash
07-16 08:41:52.011: ERROR/AndroidRuntime(6470): android.os.RemoteException: Unknown binder error code. 0xfffffff7
07-16 08:41:52.011: ERROR/AndroidRuntime(6470):     at android.os.BinderProxy.transact(Native Method)
07-16 08:41:52.011: ERROR/AndroidRuntime(6470):     at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:2867)
07-16 08:41:52.011: ERROR/AndroidRuntime(6470):     at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:72)
07-16 08:41:52.011: ERROR/AndroidRuntime(6470):     at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
07-16 08:41:52.011: ERROR/AndroidRuntime(6470):     at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
07-16 08:41:52.031: WARN/InputDispatcher(131): channel '4139a300 com.example.test/com.example.test.MainActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
07-16 08:41:52.031: ERROR/InputDispatcher(131): channel '4139a300 com.example.test/com.example.test.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
07-16 08:41:52.031: WARN/InputDispatcher(131): Attempted to unregister already unregistered input channel '4139a300 com.example.test/com.example.test.MainActivity (server)'
07-16 08:41:52.031: INFO/WindowManager(131): WINDOW DIED Window{4139a300 com.example.test/com.example.test.MainActivity paused=false}
07-16 08:41:52.031: INFO/ActivityManager(131): Process com.example.test (pid 6470) has died.
07-16 08:41:52.081: WARN/InputManagerService(131): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@412c3220
07-16 08:41:52.101: DEBUG/gralloc(71): alloc_buffer: Successfully allocated 0x15e000 bytes, mIonFd=22, SharedFd=25
07-16 08:41:52.111: DEBUG/gralloc(316): map_buffer: Successfully mapped 0x15e000 bytes at address 0x60a25000, SharedFd=53, map_count = 2
07-16 08:41:52.311: DEBUG/gralloc(131): unmap_buffer: Successfully unmapped 0x29000 bytes at address 0x5eb9a000, SharedFd=230, map_count = 0
07-16 08:41:52.321: DEBUG/gralloc(71): free_buffer: Freeing 0x29000 bytes, mIonFd=22 SharedFd=23
07-16 08:41:52.321: DEBUG/gralloc(71): unmap_buffer: Successfully unmapped 0x29000 bytes at address 0x4135c000, SharedFd=23, map_count = 5
07-16 08:41:56.531: DEBUG/Finsky(903): [1] 5.onFinished: Installation state replication succeeded.
0
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
16.07.2013, 11:40 #4
Доступ к пользовательскому интерфейсу имеет только главный поток, а вы из стороннего потока (по логу - это timerMain) пытаетесь вызвать метод showMenu(). Так не пойдёт. Либо используйте Handler для управления меню, либо код из showMenu() оберните в runOnUiThread([showMenu_code]), что равнозначно.
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2013, 11:40
Привет! Вот еще темы с ответами:

Server 2003 Долгая загрузка - Windows Server
У нас до недавнего времени стоял Сервер 2003 ,но материнка сгорела. Жесткий был разделен на 2 раздела, в первом система во втором нужные...

Долгая загрузка шапки - WordPress
Добрый день есть сайт: http://medshvetsmarka.com.ua/wp/1/ua/ Происходит долгая загрузка шапки, тоесть вроде бы вся страница...

Долгая загрузка Windiws 7 - Windows 7
всем привет. очень долго грузится Win7 на этапе где пишется "Запуск Windows" минут так где-то 5. искал на форуме облазил весь инет ничего...

Долгая загрузка сайта - JavaScript
Возможно не туда пишу, но хз куда нужно. Очень долго грузит сайт http://joxi.ru/p2758gDS0Rkzar, там просто верстка с подключением...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.07.2013, 11:40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru