2012-02-19 4 views
0

ホームキーが押されるまで、アクティビティは正常に機能します。アプリがメニューから起動すると、アクティビティは以下のボタンのボタン押下に反応しません。オリエンテーションが変更されると、アクティビティが再び開始されます。ホームキーを押した後にボタンが応答しない

on * *メソッドを実装(オーバーライド)することでこれは修正されましたか? (つまり、onResume()またはONSTART()。)ここで

は私のonStopとonDestroyある

@Override 
    protected void onStop() 
    { 
     if(broadRecvr!=null) {try{unregisterReceiver(broadRecvr);} catch(RuntimeException re) {re.getStackTrace();}} 
     super.onStop(); 
    } 
    @Override 
    protected void onDestroy() 
    { 
     super.onDestroy(); 
     if(wifiToggled) 
     {wifi.setWifiEnabled(!wifiToggled);} 
    } 

これらはlogcatエラーです。 logcat出力全体が長すぎて貼り付けることができません:

E/ActivityManager(99): fail to set top app changed! 
E/KINETO(183): KLOG0C3- xmk_QueryOSQueue SDL Queue empty : WAIT_FOREVER 
E/KINETO(183): KLOG0A3- ibs_os_GetMsg: Timeout forever for UKCC qHnd 0x814396ac 
E/KINETO(183): KLOG0C3- xmk_QueryOSQueue SDL Queue empty : WAIT_FOREVER 
E/KINETO(183): KLOG0A3- ibs_os_GetMsg: Timeout forever for UKCC qHnd 0x814396ac 
E/KINETO(183): KLOG0C3- xmk_QueryOSQueue SDL Queue empty : WAIT_FOREVER 
E/KINETO(183): KLOG0A3- ibs_os_GetMsg: Timeout forever for UKCC qHnd 0x814396ac 

私は応答していないボタンを修正する方法を知りました。

public void setupButtons() 
    { 
     buttonScan = (Button) findViewById(R.id.bScan); 
     buttonScan.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { wifi.startScan(); } }); 
    } 

私はのonCreateメソッドでsetupButtons()を呼び出しています: これは、ホームキーを押した後に動作しないボタンのコードがあります。

また、システムメニューでGPSをオンにしてから戻ると、buttonScanが応答しないことに気付きました。

+0

logcatの出力を投稿してください。 –

+0

'setupButtons()'はいつ呼びますか? –

答えて

0

解決済み。私が推測したように、これは私の場合はonResumeメソッドを実装することで解決されます。アクティビティが再開された後にonCreateが呼び出されないためです。ユーザーがホームボタンを押してアクティビティに戻ると、レジュームが発生します。何も変更されていないので、方向が変更されるまで再描画されません(@ onCreateが発生します)。なぜこれが正しい答えなのか、私には完璧な意味があります。

@Override 
public void onResume() { 
    super.onResume(); 
    //code goes here 
} 
+0

クリックリスナーが一時停止すると登録解除される理由はありますか?あなたが離れて移動して戻るボタンを押すと、古いアクティビティが一時停止され、再開され、私のボタンがまだ動作しているように見えるので、それは私にとって意味をなさないようです。 – Kevlar

関連する問題