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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 40, средняя оценка - 4.68
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
#1

Activity (сворачивание-возобновление-закрытие) - Android

19.09.2012, 14:25. Просмотров 4981. Ответов 19
Метки нет (Все метки)

Народ помогите разобраться с проблемой. Думаю труда не составит )))
написал игру, пользовался surfaceview. Есть две проблемы, когда нажимаю кнопку (стрелрчку-назад) активити игры закрываеться и показываеться главное активити меню, оно не в фокусе и через минуту приложение падает.
когда сворачиваю приложение и возрбновляю то оно опять не в фркусе и тоже падает с системной ошибкой.

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
public class MainActivity extends Activity {
 
    public ScenView v;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //Set Windows Properties 
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        
        v=new ScenView(this,getIntent());
        setContentView(v);
    }   
    
   @Override
   public void onDestroy()
   {
       super.onDestroy();
       v.surfaceDestroyed(v.getHolder());
   }
   
    @Override
    public boolean onTouchEvent(MotionEvent event)
    {
        return this.v.TouchEvent(event);        
    }
}
SurfaceView

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
public class ScenView extends SurfaceView implements SurfaceHolder.Callback
{
 
    private SurfaceHolder holder; // Drawing zone
    Manager DrawThread;   // Draw Thread
    
    public boolean surfaceCreated;
    public Intent intent;
    
    public ScenView(Context context,Intent intent)
    {
        super(context);
        this.surfaceCreated=false;
        this.intent=intent;
        this.holder=getHolder();
        this.holder.addCallback(this);
        this.DrawThread=new Manager(this.holder,context,this,intent); // Create draw thread 
        
        //////
        this.setFocusable(true);
    }
    
    // Changing of drawing zone
    public void surfaceDestroyed(SurfaceHolder holder) 
    {
        boolean flag=true;
        DrawThread.SetRunningState(false);
        while(flag)
        {
            try
            {
                DrawThread.join();
                flag=true;
            }
            catch(InterruptedException e){}
        }
        
    }
    // Creating of drawing zone
    public void surfaceCreated(SurfaceHolder holder)
    {
        DrawThread.SetRunningState(true);
        DrawThread.start(); 
    }
    // Destroying of drawing zone
    public void surfaceChanged(SurfaceHolder holder, int format, int width,
                        int height)
    {
        
    }
 
    public boolean TouchEvent(MotionEvent event)
    {
        return this.DrawThread.DoTouchEvent(event);     
    }
}
вот и все )))) что нужно прописать что бы все было гладко?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2012, 14:25     Activity (сворачивание-возобновление-закрытие)
Посмотрите здесь:

Отслеживание закрытие второго activity Android
Из одного Activity получить значение другого Activity Android
Из одной Activity запустить функцию другой Activity Android
Как вызвать Activity не из Activity? Android
Activity, сворачивание / возобновление Android
Android Возобновление работы потока в AsyncTask
Android Приложение зависает, если свернуть и развернуть Activity или перейти на другую Activity
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.09.2012, 14:31     Activity (сворачивание-возобновление-закрытие) #2
смотри логи.
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
19.09.2012, 14:43  [ТС]     Activity (сворачивание-возобновление-закрытие) #3
логи мне не помогли, здесь просто нужно знать как воспользоваться методами onpause onResume, контролировать surfaceView и поток рисование, приложение сворачиваеться, нужно же както остановить поток рисование и поставить surfaceview на паузу, а потом возобновить всеЛоги
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.09.2012, 14:59     Activity (сворачивание-возобновление-закрытие) #4
Цитата Сообщение от 56illusion Посмотреть сообщение
логи мне не помогли
нам помогут.
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
20.09.2012, 14:27  [ТС]     Activity (сворачивание-возобновление-закрытие) #5
couldn't save which view has focus because the focused view GoldenApps.Thockey.menu@40754398 has no id.

Единственное подозрительное в log фаиле...
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
20.09.2012, 19:49     Activity (сворачивание-возобновление-закрытие) #6
если падает с ошибкой, значит в логе должен быть екзепшен. ищи.
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
22.09.2012, 22:00  [ТС]     Activity (сворачивание-возобновление-закрытие) #7
Вот лог фаил.. exception нету.. только сообщение что не удайться найти фокус...друг сказал что при закрытие активити игры где используеться SurfaceView не отпускаеться фокус...
Миниатюры
Activity (сворачивание-возобновление-закрытие)  
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
23.09.2012, 20:03  [ТС]     Activity (сворачивание-возобновление-закрытие) #8
Ребята мне очень нужна помощь..Я проект закончил и готов выложить в маркет, а ета проблема меня тормозит.
Постораюсь объяснить по подробней..

есть 3 activity.
1- menu
2- Difficulty
3- Game (SurfaceView реализация)

С перехода на второю активити, первая остаеться открытой на заднем плане.
на второй активити выбираю уровень сложности, вторая закрываеться this.finish();
и открываю через intent третию активити игры которая рисует графику через surface view.

Проблема такая..со второй активити на первую переход нормальный. А с третей активити переход уже идет на самую первую ( если в процессе игры нажать на выход ) так вот в етом случаи первая активи уже не реагирует на касания и нажатия, нет фокуса (хотя в onResume() прописываю фркус )
через минуту игра падает с системной ошибкой. LogCat пишет что не может найти фокус.. получаеться surface view не отпускает его???
Помогите Программисты !!!
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.09.2012, 21:22     Activity (сворачивание-возобновление-закрытие) #9
напишите как вы в onResume() прописываете фокус, может тогда поймем о каких еще фокусах идет речь и как вообще что-то может не отпускать в фокус..
мне известно только о прописывание фокусов для вюшек и что активити находится в фокусе, если она на переднем плане.

Добавлено через 34 секунды
а лучше повнимательней поищите в логах екзепшен.
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
23.09.2012, 21:43  [ТС]     Activity (сворачивание-возобновление-закрытие) #10
вот что нашол крысным цветом

channel '4103c3e0 GoldenApps.Thockey/GoldenApps.Thockey.MenuActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x8

InputDispatcher
channel '4103c3e0 GoldenApps.Thockey/GoldenApps.Thockey.MenuActivity (server)' ~ Channel is unrecoverably broken and will be disposed!

Первое активити где проподает фокус после возврата с игры
Java
1
2
3
4
5
6
7
8
9
@Override
    protected void onResume()
    {
        super.onResume();
        
        _menu.requestFocus();
        this._menu.setFocusable(true);      
        this._menu.setFocusableInTouchMode(true);
    }
Surface View class

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
    public void surfaceDestroyed(SurfaceHolder holder) 
    {
        Log.d("MY", "destroy");
        boolean flag=true;
        DrawThread.SetRunningState(false);
        while(flag)
        {
            try
            {
                DrawThread.join();
                DrawThread=null;
                flag=true;
            }
            catch(InterruptedException e){}
        }
        
    }
    // Creating of drawing zone
    public void surfaceCreated(SurfaceHolder holder)
    {       
        if(this.DrawThread==null||this.DrawThread.getState()==Thread.State.TERMINATED)
        {
            DrawThread=new Manager(this.holder,getContext(),this,this.intent);
            DrawThread.SetRunningState(true);
            DrawThread.start();
        }
        else
        {
            DrawThread.SetRunningState(true);
            DrawThread.start();
        }
    }
Активити игры где вызываеться surface view class

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 @Override
   public void onPause()
   {
       super.onPause();
     //  v.surfaceDestroyed();
      // v.destroyDrawingCache();
       //v.clearFocus();
      // v.TerminateThread();
       this.v.DrawThread.SetRunningState(false);       
   }
   
   @Override
   public void onResume()
   {
       super.onResume();     
   }
Добавлено через 1 минуту
DrawThread ето класс поток в котором рисуеться графика

Добавлено через 5 минут
09-23 19:40:51.770: I/AudioFlinger(240): stop output streamType (1, 3) for 1
09-23 19:40:52.000: I/InputReader(304): dispatchTouch::touch event's action is 1, pending(waiting finished signal)=0
09-23 19:40:52.000: I/InputDispatcher(304): Delivering touch to current input target: action: 1, channel '40d96fd0 GoldenApps.Thockey/GoldenApps.Thockey.MainActivity (server)'
09-23 19:40:52.000: I/InputDispatcher(304): Delivering touch to current input target: action: 1, channel 'TouchIntercepter (server)'
09-23 19:40:52.850: V/AudioPolicyManager(240): stopOutput() output 1, stream 3, session 463 mPhoneState 0
09-23 19:40:52.850: V/AudioPolicyManager(240): getNewDevice() selected device 0
09-23 19:40:52.850: V/AudioPolicyManager(240): setOutputDevice() output 1 device 0 delayMs 0
09-23 19:40:52.850: V/AudioPolicyManager(240): setOutputDevice() setting same device 0 or null device for output 1
09-23 19:40:52.860: I/AudioFlinger(240): stop output streamType (0, 3) for 1
09-23 19:40:52.860: D/AudioHardware(240): AudioStreamOutALSA::setParameters() stop_output_streamtype=3
09-23 19:40:54.230: D/HierarchicalStateMachine(304): handleMessage: E msg.what=65619
09-23 19:40:54.230: D/HierarchicalStateMachine(304): processMsg: ConnectedState
09-23 19:40:54.230: D/WifiStateMachine(304): ConnectedState{ what=65619 when=-3ms arg1=15 }
09-23 19:40:54.240: D/HierarchicalStateMachine(304): handleMessage: X
09-23 19:40:55.250: D/dalvikvm(3567): GC_EXPLICIT freed 79K, 7% free 6378K/6791K, paused 3ms+5ms
09-23 19:40:55.610: I/InputReader(304): dispatchTouch::touch event's action is 0, pending(waiting finished signal)=0
09-23 19:40:55.610: I/InputDispatcher(304): Delivering touch to current input target: action: 0, channel '408498c8 StatusBar (server)'
09-23 19:40:55.610: I/InputDispatcher(304): Delivering touch to current input target: action: 0, channel 'TouchIntercepter (server)'
09-23 19:40:55.610: I/KeyguardViewMediator(304): mShowing false mNeedToReshowWhenReenabled false
09-23 19:40:55.610: I/ProvisionLog(304): [KeyguardUpdateMonitor] in isDeviceProvisioned(), now return true
09-23 19:40:55.610: I/KeyguardViewMediator(304): mShowing false mNeedToReshowWhenReenabled false
09-23 19:40:55.610: I/ProvisionLog(304): [KeyguardUpdateMonitor] in isDeviceProvisioned(), now return true
09-23 19:40:55.610: I/InputDispatcher(304): Delivering key to current input target: action: 0, channel '40d96fd0 GoldenApps.Thockey/GoldenApps.Thockey.MainActivity (server)'
09-23 19:40:55.610: I/InputDispatcher(304): Delivering key to current input target: action: 0, channel 'TouchIntercepter (server)'
09-23 19:40:55.610: I/TabletStatusBar(353): MSG_UPDATE_STATUSBAR_AGAIN
09-23 19:40:55.720: I/InputReader(304): dispatchTouch::touch event's action is 1, pending(waiting finished signal)=0
09-23 19:40:55.720: I/InputDispatcher(304): Delivering touch to current input target: action: 1, channel '408498c8 StatusBar (server)'
09-23 19:40:55.720: I/InputDispatcher(304): Delivering touch to current input target: action: 1, channel 'TouchIntercepter (server)'
09-23 19:40:55.720: I/KeyguardViewMediator(304): mShowing false mNeedToReshowWhenReenabled false
09-23 19:40:55.720: I/ProvisionLog(304): [KeyguardUpdateMonitor] in isDeviceProvisioned(), now return true
09-23 19:40:55.720: I/KeyguardViewMediator(304): mShowing false mNeedToReshowWhenReenabled false
09-23 19:40:55.720: I/ProvisionLog(304): [KeyguardUpdateMonitor] in isDeviceProvisioned(), now return true
09-23 19:40:55.730: I/InputDispatcher(304): Delivering key to current input target: action: 1, channel '40d96fd0 GoldenApps.Thockey/GoldenApps.Thockey.MainActivity (server)'
09-23 19:40:55.730: I/InputDispatcher(304): Delivering key to current input target: action: 1, channel 'TouchIntercepter (server)'
09-23 19:40:55.750: D/WindowManager(304): Setting visibility of AppWindowToken{410aed70 token=ActivityRecord{40bba4a0 GoldenApps.Thockey/.MenuActivity}}: true
09-23 19:40:55.760: I/SurfaceFlinger(237): id=365(5) createSurface 0x141724 for pid 8136 (800x1232),2 flag=0, GoldenApps.Thockey/GoldenApps.Thockey.MenuActivity
09-23 19:40:55.760: D/WindowManager(304): Desired input method target: Window{40fa1b68 GoldenApps.Thockey/GoldenApps.Thockey.MenuActivity paused=false}
09-23 19:40:55.760: D/WindowManager(304): Current focus: Window{40fa1b68 GoldenApps.Thockey/GoldenApps.Thockey.MenuActivity paused=false}
09-23 19:40:55.760: D/WindowManager(304): Last focus: Window{40fa1b68 GoldenApps.Thockey/GoldenApps.Thockey.MenuActivity paused=false}
09-23 19:40:55.760: D/WindowManager(304): IM target client: com.android.internal.view.IInputMethodClient$Stub$Proxy@40f62368
09-23 19:40:55.760: D/WindowManager(304): IM target client binder: android.os.BinderProxy@40a10780
09-23 19:40:55.760: D/WindowManager(304): Requesting client binder: android.os.BinderProxy@40a10780
09-23 19:40:55.760: D/CLIPBOARD(304): Hide Clipboard dialog inside hideSoftInput() !
09-23 19:40:55.760: D/CLIPBOARD(304): Hide Clipboard dialog inside windowGainedFocus() !
09-23 19:40:55.760: D/InputManagerService(304): startInputLocked: cs=ClientState{40e184f8 uid 10126 pid 8136}, cs.pid=8136, Binding.getCallingPid()=304
09-23 19:40:55.760: I/WindowManager(304): Putting input method here!
09-23 19:40:55.760: D/WindowManager(304): w.mAttrs.token=ActivityRecord{40bba4a0 GoldenApps.Thockey/.MenuActivity}
09-23 19:40:55.760: D/WindowManager(304): w.mToken=AppWindowToken{410aed70 token=ActivityRecord{40bba4a0 GoldenApps.Thockey/.MenuActivity}}
09-23 19:40:55.760: D/WindowManager(304): token=AppWindowToken{410aed70 token=ActivityRecord{40bba4a0 GoldenApps.Thockey/.MenuActivity}}
09-23 19:40:55.760: I/WindowManager(304): Placing input method @3
09-23 19:40:55.840: V/AudioHardware(240): AudioStreamOutALSA::standby
09-23 19:40:55.850: D/AudioHardware(240): AudioHardware pcm playback is going to standby.
09-23 19:40:55.850: V/AudioHardware(240): closeMixer_l() mMixerOpenCnt: 1
09-23 19:40:55.850: I/alsa_mixer(240): mixer_close
09-23 19:40:55.850: V/AudioHardware(240): closeMixer_l mMixerOpenCnt = 0 end
09-23 19:40:55.850: I/AudioHardware(240): closePcmOut_l() mPcmOpenCnt: 1
09-23 19:40:55.850: V/alsa_pcm(240): pcm_close
09-23 19:40:55.850: V/alsa_pcm(240): real pcm_close
09-23 19:40:55.850: V/AudioHardware(240): closePcmOut_l end
09-23 19:40:55.870: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:55.880: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:55.880: D/WindowManager(304): Setting visibility of AppWindowToken{40839060 token=ActivityRecord{40838ec0 GoldenApps.Thockey/.MainActivity}}: false
09-23 19:40:55.890: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:55.910: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:55.920: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:55.940: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:55.950: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:55.970: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:55.990: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:56.000: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:56.020: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:56.030: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:56.050: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:56.070: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:56.080: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:56.100: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:56.120: V/WindowManager(304): Preventing status bar from hiding by policy
09-23 19:40:56.980: I/InputReader(304): dispatchTouch::touch event's action is 0, pending(waiting finished signal)=0
09-23 19:40:56.980: I/InputDispatcher(304): Delivering touch to current input target: action: 0, channel '40fa1b68 GoldenApps.Thockey/GoldenApps.Thockey.MenuActivity (server)'
09-23 19:40:56.980: I/InputDispatcher(304): Delivering touch to current input target: action: 0, channel 'TouchIntercepter (server)'
09-23 19:40:57.070: I/InputReader(304): dispatchTouch::touch event's action is 1, pending(waiting finished signal)=1
09-23 19:40:57.240: D/HierarchicalStateMachine(304): handleMessage: E msg.what=65619
09-23 19:40:57.240: D/HierarchicalStateMachine(304): processMsg: ConnectedState
09-23 19:40:57.240: D/WifiStateMachine(304): ConnectedState{ what=65619 when=0 arg1=15 }
09-23 19:40:57.240: D/HierarchicalStateMachine(304): handleMessage: X
09-23 19:40:57.340: I/InputReader(304): dispatchTouch::touch event's action is 0, pending(waiting finished signal)=1
09-23 19:40:57.440: I/InputReader(304): dispatchTouch::touch event's action is 1, pending(waiting finished signal)=1
09-23 19:40:57.650: I/InputReader(304): dispatchTouch::touch event's action is 0, pending(waiting finished signal)=1
09-23 19:40:57.770: I/InputReader(304): dispatchTouch::touch event's action is 1, pending(waiting finished signal)=1
09-23 19:40:58.110: I/InputReader(304): dispatchTouch::touch event's action is 0, pending(waiting finished signal)=1
09-23 19:40:58.190: I/InputReader(304): dispatchTouch::touch event's action is 1, pending(waiting finished signal)=1
09-23 19:40:58.300: I/InputReader(304): dispatchTouch::touch event's action is 0, pending(waiting finished signal)=1
09-23 19:40:58.390: I/InputReader(304): dispatchTouch::touch event's action is 1, pending(waiting finished signal)=1
09-23 19:40:58.510: I/InputReader(304): dispatchTouch::touch event's action is 0, pending(waiting finished signal)=1
09-23 19:40:58.600: I/InputReader(304): dispatchTouch::touch event's action is 1, pending(waiting finished signal)=1
09-23 19:40:58.800: I/InputReader(304): dispatchTouch::touch event's action is 0, pending(waiting finished signal)=1
09-23 19:40:58.900: I/InputReader(304): dispatchTouch::touch event's action is 1, pending(waiting finished signal)=1
09-23 19:40:59.090: I/InputReader(304): dispatchTouch::touch event's action is 0, pending(waiting finished signal)=1
09-23 19:40:59.200: I/InputReader(304): dispatchTouch::touch event's action is 1, pending(waiting finished signal)=1
09-23 19:40:59.370: I/InputReader(304): dispatchTouch::touch event's action is 0, pending(waiting finished signal)=1
09-23 19:40:59.450: I/InputReader(304): dispatchTouch::touch event's action is 1, pending(waiting finished signal)=1
09-23 19:41:00.000: D/KeyguardUpdateMonitor(304): received broadcast android.intent.action.TIME_TICK
09-23 19:41:00.000: D/KeyguardUpdateMonitor(304): handleTimeUpdate
09-23 19:41:00.000: D/BatteryService(304): update start
09-23 19:41:00.000: I/StatusBar.Clock(353): onReceive:android.intent.action.TIME_TICK
09-23 19:41:00.010: E/TODmobile(537): onReceive action=android.intent.action.TIME_TICK
09-23 19:41:00.010: E/TODmobile(537): hour : 19 minute : 41
09-23 19:41:00.010: E/DigitalClockWidget(537): updateWidgets
09-23 19:41:00.010: E/TODmobile(537): hour : 19 minute : 41
09-23 19:41:00.010: I/StatusBar.Clock(353): onReceive:android.intent.action.TIME_TICK
09-23 19:41:00.030: I/LauncherAppWidgetHostView(387): updateAppWidget() : 384x224, Widget Name : com.sec.android.widgetapp.digitalclock
09-23 19:41:00.240: D/HierarchicalStateMachine(304): handleMessage: E msg.what=65619
09-23 19:41:00.240: D/HierarchicalStateMachine(304): processMsg: ConnectedState
09-23 19:41:00.240: D/WifiStateMachine(304): ConnectedState{ what=65619 when=-3ms arg1=15 }
09-23 19:41:00.260: D/HierarchicalStateMachine(304): handleMessage: X
09-23 19:41:00.990: I/InputReader(304): dispatchTouch::touch event's action is 0, pending(waiting finished signal)=1
09-23 19:41:01.660: I/InputReader(304): dispatchTouch::touch event's action is 1, pending(waiting finished signal)=1
09-23 19:41:02.170: I/InputReader(304): dispatchTouch::touch event's action is 0, pending(waiting finished signal)=1
09-23 19:41:02.720: I/InputReader(304): dispatchTouch::touch event's action is 1, pending(waiting finished signal)=1
09-23 19:41:02.820: I/InputReader(304): dispatchTouch::touch event's action is 0, pending(waiting finished signal)=1
09-23 19:41:02.980: W/PowerManagerService(304): Timer 0x3->0x3|0x0
09-23 19:41:03.260: I/InputReader(304): dispatchTouch::touch event's action is 1, pending(waiting finished signal)=1
09-23 19:41:03.260: D/HierarchicalStateMachine(304): handleMessage: E msg.what=65619
09-23 19:41:03.260: D/HierarchicalStateMachine(304): processMsg: ConnectedState
09-23 19:41:03.260: D/WifiStateMachine(304): ConnectedState{ what=65619 when=-3ms arg1=15 }
09-23 19:41:03.270: D/HierarchicalStateMachine(304): handleMessage: X
09-23 19:41:04.190: E/Watchdog(304): !@Sync 523
09-23 19:41:05.750: W/ActivityManager(304): Launch timeout has expired, giving up wake lock!
09-23 19:41:05.750: W/ActivityManager(304): Activity idle timeout for ActivityRecord{40bba4a0 GoldenApps.Thockey/.MenuActivity}
09-23 19:41:05.750: I/Process(304): Sending signal. PID: 8136 SIG: 3
09-23 19:41:05.750: I/dalvikvm(8136): threadid=4: reacting to signal 3
09-23 19:41:05.750: D/ActivityManager(304): handleActivityTimeout pid=[8136] cnt=5
09-23 19:41:05.770: I/dalvikvm(8136): Wrote stack traces to '/data/anr/traces.txt'
09-23 19:41:06.270: D/HierarchicalStateMachine(304): handleMessage: E msg.what=65619
09-23 19:41:06.270: D/HierarchicalStateMachine(304): processMsg: ConnectedState
09-23 19:41:06.270: D/WifiStateMachine(304): ConnectedState{ what=65619 when=-3ms arg1=15 }
09-23 19:41:06.280: D/HierarchicalStateMachine(304): handleMessage: X
: E/(): Device disconnected
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.09.2012, 21:45     Activity (сворачивание-возобновление-закрытие) #11
ну вижу в коде прописывание фокуса для меню. а при чем здесь фокус активити?

очистите логи, нажмите бек, подождите пока программа вывалится и скопируйте абсолютно все логи сюда.
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
23.09.2012, 21:56  [ТС]     Activity (сворачивание-возобновление-закрытие) #12
09-23 19:53:02.600: I/InputDispatcher(304): Delivering touch to current input target: action: 1, channel '40f08410 Приносим извинения. (server)'
09-23 19:53:02.600: I/InputDispatcher(304): Delivering touch to current input target: action: 1, channel 'TouchIntercepter (server)'
09-23 19:53:02.600: W/PowerManagerService(304): Timer 0x3->0x3|0x0
09-23 19:53:02.600: W/PowerManagerService(304): Timer 0x3->0x3|0x0
09-23 19:53:04.210: E/Watchdog(304): !@Sync 547
09-23 19:53:04.770: D/HierarchicalStateMachine(304): handleMessage: E msg.what=65619
09-23 19:53:04.770: D/HierarchicalStateMachine(304): processMsg: ConnectedState
09-23 19:53:04.770: D/WifiStateMachine(304): ConnectedState{ what=65619 when=-1ms arg1=15 }
09-23 19:53:04.780: D/HierarchicalStateMachine(304): handleMessage: X
09-23 19:53:07.540: D/dalvikvm(8281): GC_EXPLICIT freed 212K, 15% free 8551K/10055K, paused 3ms+3ms
09-23 19:53:07.710: I/InputReader(304): dispatchTouch::touch event's action is 0, pending(waiting finished signal)=0
09-23 19:53:07.710: I/InputDispatcher(304): Delivering touch to current input target: action: 0, channel '40f08410 Приносим извинения. (server)'
09-23 19:53:07.710: I/InputDispatcher(304): Delivering touch to current input target: action: 0, channel 'TouchIntercepter (server)'
09-23 19:53:07.780: D/HierarchicalStateMachine(304): handleMessage: E msg.what=65619
09-23 19:53:07.780: D/HierarchicalStateMachine(304): processMsg: ConnectedState
09-23 19:53:07.780: D/WifiStateMachine(304): ConnectedState{ what=65619 when=-3ms arg1=15 }
09-23 19:53:07.790: D/HierarchicalStateMachine(304): handleMessage: X
09-23 19:53:07.900: I/InputReader(304): dispatchTouch::touch event's action is 1, pending(waiting finished signal)=0
09-23 19:53:07.900: I/InputDispatcher(304): Delivering touch to current input target: action: 1, channel '40f08410 Приносим извинения. (server)'
09-23 19:53:07.900: I/InputDispatcher(304): Delivering touch to current input target: action: 1, channel 'TouchIntercepter (server)'
09-23 19:53:07.900: W/ActivityManager(304): Force finishing activity GoldenApps.Thockey/.MenuActivity
09-23 19:53:07.920: I/Process(304): Sending signal. PID: 8384 SIG: 9
09-23 19:53:07.920: I/ActivityManager(304): Killing GoldenApps.Thockey (pid=8384): user's request
09-23 19:53:07.940: I/SurfaceFlinger(237): id=384 Removed Приносим извинения. idx=6 Map Size=5
09-23 19:53:07.940: E/InputDispatcher(304): channel '41188fd8 GoldenApps.Thockey/GoldenApps.Thockey.MenuActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x8
09-23 19:53:07.940: E/InputDispatcher(304): channel '41188fd8 GoldenApps.Thockey/GoldenApps.Thockey.MenuActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
09-23 19:53:07.940: I/ActivityManager(304): Process GoldenApps.Thockey (pid 8384) has died.
09-23 19:53:07.960: I/SurfaceFlinger(237): id=384 Removed Приносим извинения. idx=-2 Map Size=5
09-23 19:53:07.980: D/WindowManager(304): Setting visibility of AppWindowToken{41b15fb8 token=ActivityRecord{40a9a3b8 GoldenApps.Thockey/.MenuActivity}}: false
09-23 19:53:07.980: D/WindowManager(304): Setting visibility of AppWindowToken{40c26918 token=ActivityRecord{40c26710 com.android.browser/.BrowserActivity}}: true
09-23 19:53:07.990: I/WindowManager(304): WIN DEATH: Window{41188fd8 GoldenApps.Thockey/GoldenApps.Thockey.MenuActivity paused=true}
09-23 19:53:07.990: E/InputDispatcher(304): channel '40fa4ac8 GoldenApps.Thockey/GoldenApps.Thockey.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x8
09-23 19:53:07.990: E/InputDispatcher(304): channel '40fa4ac8 GoldenApps.Thockey/GoldenApps.Thockey.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
09-23 19:53:07.990: I/SurfaceFlinger(237): id=382 Removed SurfaceView idx=2 Map Size=4
09-23 19:53:07.990: I/SurfaceFlinger(237): id=381 Removed GoldenApps.Thockey/GoldenApps.Thockey.MainActivity idx=2 Map Size=3
09-23 19:53:07.990: I/WindowManager(304): WINDOW DIED Window{41188fd8 GoldenApps.Thockey/GoldenApps.Thockey.MenuActivity paused=true}
09-23 19:53:07.990: I/WindowManager(304): WINDOW DIED Window{40fa4ac8 GoldenApps.Thockey/GoldenApps.Thockey.MainActivity paused=false}
09-23 19:53:07.990: W/WindowManager(304): Force-removing child win Window{40fd6b10 SurfaceView paused=false} from container Window{40fa4ac8 GoldenApps.Thockey/GoldenApps.Thockey.MainActivity paused=false}
09-23 19:53:07.990: W/WindowManager(304): Failed looking up window
09-23 19:53:07.990: W/WindowManager(304): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@41b1fc40 does not exist
09-23 19:53:07.990: W/WindowManager(304): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7124)
09-23 19:53:07.990: W/WindowManager(304): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7115)
09-23 19:53:07.990: W/WindowManager(304): at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1400)
09-23 19:53:07.990: W/WindowManager(304): at android.os.BinderProxy.sendDeathNotice(Binder.java:418)
09-23 19:53:07.990: W/WindowManager(304): at dalvik.system.NativeStart.run(Native Method)
09-23 19:53:07.990: I/WindowManager(304): WIN DEATH: null
09-23 19:53:07.990: W/WindowManager(304): Failed looking up window
09-23 19:53:07.990: W/WindowManager(304): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@41b1f400 does not exist
09-23 19:53:07.990: W/WindowManager(304): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7124)
09-23 19:53:07.990: W/WindowManager(304): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7115)
09-23 19:53:07.990: W/WindowManager(304): at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1400)
09-23 19:53:07.990: W/WindowManager(304): at android.os.BinderProxy.sendDeathNotice(Binder.java:418)
09-23 19:53:07.990: W/WindowManager(304): at dalvik.system.NativeStart.run(Native Method)
09-23 19:53:07.990: I/WindowManager(304): WIN DEATH: null
09-23 19:53:08.010: I/SurfaceFlinger(237): id=381 Removed GoldenApps.Thockey/GoldenApps.Thockey.MainActivity idx=-2 Map Size=3
09-23 19:53:08.010: I/SurfaceFlinger(237): id=382 Removed SurfaceView idx=-2 Map Size=3
09-23 19:53:08.010: I/SurfaceFlinger(237): id=385(3) createSurface 0x13b2cc for pid 8281 (800x1232),1 flag=1024, com.android.browser/com.android.browser.BrowserActivity
09-23 19:53:08.030: D/WindowManager(304): Desired input method target: Window{40e2a418 com.android.browser/com.android.browser.BrowserActivity paused=false}
09-23 19:53:08.030: D/WindowManager(304): Current focus: Window{40e2a418 com.android.browser/com.android.browser.BrowserActivity paused=false}
09-23 19:53:08.030: D/WindowManager(304): Last focus: Window{40e2a418 com.android.browser/com.android.browser.BrowserActivity paused=false}
09-23 19:53:08.030: D/WindowManager(304): IM target client: com.android.internal.view.IInputMethodClient$Stub$Proxy@40e2ad10
09-23 19:53:08.030: D/WindowManager(304): IM target client binder: android.os.BinderProxy@40f3f2e8
09-23 19:53:08.030: D/WindowManager(304): Requesting client binder: android.os.BinderProxy@40f3f2e8
09-23 19:53:08.030: D/CLIPBOARD(304): Hide Clipboard dialog inside hideSoftInput() !
09-23 19:53:08.030: D/CLIPBOARD(304): Hide Clipboard dialog inside windowGainedFocus() !
09-23 19:53:08.030: D/InputManagerService(304): startInputLocked: cs=ClientState{40eda0d0 uid 10086 pid 8281}, cs.pid=8281, Binding.getCallingPid()=304
09-23 19:53:08.030: I/WindowManager(304): Putting input method here!
09-23 19:53:08.030: D/WindowManager(304): w.mAttrs.token=ActivityRecord{40c26710 com.android.browser/.BrowserActivity}
09-23 19:53:08.030: D/WindowManager(304): w.mToken=AppWindowToken{40c26918 token=ActivityRecord{40c26710 com.android.browser/.BrowserActivity}}
09-23 19:53:08.030: D/WindowManager(304): token=AppWindowToken{40c26918 token=ActivityRecord{40c26710 com.android.browser/.BrowserActivity}}
09-23 19:53:08.030: I/WindowManager(304): Placing input method @4
09-23 19:53:08.030: W/InputManagerService(304): Got RemoteException sending setActive(false) notification to pid 8384 uid 10126
09-23 19:53:08.050: I/SurfaceFlinger(237): id=383 Removed GoldenApps.Thockey/GoldenApps.Thockey.MenuActivity idx=1 Map Size=3
09-23 19:53:08.050: I/SurfaceFlinger(237): id=383 Removed GoldenApps.Thockey/GoldenApps.Thockey.MenuActivity idx=-2 Map Size=3
09-23 19:53:08.060: I/SurfaceFlinger(237): id=383 Removed GoldenApps.Thockey/GoldenApps.Thockey.MenuActivity idx=-2 Map Size=3
: E/(): Device disconnected
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.09.2012, 22:06     Activity (сворачивание-возобновление-закрытие) #13
а вот и екзепшены какие-то вылезли. дальше сами разберетесь?
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
23.09.2012, 22:11  [ТС]     Activity (сворачивание-возобновление-закрытие) #14
Ы мне только скажите где именно екзепшины, я не вижу что бы было наисано exception.. И я уже погуглю псмотрю что они значят. Спасибо
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.09.2012, 22:15     Activity (сворачивание-возобновление-закрытие) #15
Цитата Сообщение от 56illusion Посмотреть сообщение
public void surfaceDestroyed(SurfaceHolder holder)
* * {
* * * * boolean flag=true;
* * * * DrawThread.SetRunningState(false);
* * * * while(flag)
* * * * {
* * * * * * try
* * * * * * {
* * * * * * * * DrawThread.join();
* * * * * * * * flag=true;
* * * * * * }
* * * * * * catch(InterruptedException e){}
* * * * }
}
что-то мне подсказывает, что после DrawThread.join(); должно быть flag=false; или в catch должно быть flag=false;
все таки 99% что в сatch должно быть flag=false;

в общем вроде из-за этого while не может закончится дестрой активити.
ну это так, догадки.

Добавлено через 23 секунды
Цитата Сообщение от 56illusion Посмотреть сообщение
Ы мне только скажите где именно екзепшины, я не вижу что бы было наисано exception.. И я уже погуглю псмотрю что они значят. Спасибо
ctrl+f
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
24.09.2012, 21:22  [ТС]     Activity (сворачивание-возобновление-закрытие) #16
Точно, я не обращал внимание на етот блок кода, всю структуру реализации surfaceview брал в сети...я проверю ето, отпишусь:-D спасибо!!
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
26.09.2012, 17:18  [ТС]     Activity (сворачивание-возобновление-закрытие) #17
Странно, не чего не меняеться.. Даже пробывал просто напрямую закрыть поток, stop();
Просмотрел кучу сайтов и форумов, все правельно... А фокус теряеться...
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.09.2012, 20:01     Activity (сворачивание-возобновление-закрытие) #18
ну, проверь завершается ли дестрой (подебагай, логи повыводи)...
но так как сейчас есть, это бесконечный цикл...
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
27.09.2012, 01:43  [ТС]     Activity (сворачивание-возобновление-закрытие) #19
Решение проблемы найдено:-D вся причина заключаеться в разнице между ontouchevent и ontouch.
Ontouchevent нужно прописывать трлько в view объектах, иначе могут возникнуть такие баги с фокусом, как у меня.
Смена flag с true на false тоже была обязательной. On touchevent прописал в класе surfaceview ( было в avtivity )
Спасибо огромное всем!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2012, 02:31     Activity (сворачивание-возобновление-закрытие)
Еще ссылки по теме:

Android Android - Передача данных с одного Activity на другое Activity
Изменение layout-элементов одного activity из другого activity Android
Создание Activity в другом Activity Android
Android Вызвать из одной activity функцию другой activity
Android Вывод activity в activity

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

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.09.2012, 02:31     Activity (сворачивание-возобновление-закрытие) #20
это не баги с фокусом, это просто программа зависает из-за екзепшена.
Yandex
Объявления
27.09.2012, 02:31     Activity (сворачивание-возобновление-закрытие)
Ответ Создать тему
Опции темы

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