2011-04-30 141 views
0

嘿, 我在我的Android應用程序中使用SensorManager。我瞭解到,一旦應用程序關閉,我必須以某種方式處理它,因爲否則它會繼續聽取更改。所以,我試過如下:如何正確配置SensorManager

@Override 
    public void onDestroy() 
    { 
     manager.unregisterListener(temp); 
    } 

(當溫度爲TempListener的實例延伸SensorEventListener,它被添加到的SensorManager經理manager.registerListener(溫度...))。我也嘗試過經理=空,但他們都讓我的應用程序強制關閉。我哪裏錯了? 謝謝。

+1

你一定要取消註冊你可能已經註冊的任何'SensorEventListener'。沒有其他需要「處理SensorManager」了。如果您的'unregisterListener()'調用崩潰,請使用Eclipse中的'adb logcat',DDMS或DDMS透視圖來檢查LogCat並查看與崩潰相關的堆棧跟蹤。 – CommonsWare 2011-04-30 12:48:36

+0

嗨CommonsWare,我試着用一個調試器運行它,但它只能告訴我崩潰發生在ActivityThread.performDestroyActivity(IBinder,boolean,int,boolean)行3361.我認爲它在處理使用傳感器的應用程序時遇到問題。 – ronash 2011-04-30 13:08:54

+1

我保證你可以註銷一個監聽器。見https://github.com/commonsguy/cw-advandroid/tree/master/Sensor/Shaker – CommonsWare 2011-04-30 13:54:25

回答

0

問題是我沒有寫super.onDestroy()。傻我...