2014-03-02 76 views
0

我遇到了一個我正在創建的應用程序的問題。從本質上講,應該只有在接近傳感器被阻塞(接近傳感器)的情況下才會啓動,並且只要它被解除阻塞,它就應該運行finish()。我已經試過這在Android中,我該如何延遲onSensorChanged?

public void onSensorChanged(SensorEvent event) { 
    if (event.values[0] == 0) { 
     iv.setImageResource(R.drawable.logotwo); 
    } else { 
     finish(); 
    } 
} 

,但應用程序立即關閉,因爲它無法讀取接近傳感器速度不夠快。如果我做

public void onSensorChanged(SensorEvent event) { 
if (event.values[0] == 0) { 
    iv.setImageResource(R.drawable.logotwo); 
} else { 
    iv.setImageResource(R.drawable.logoone); 
} 

}

它識別傳感器並顯示兩個圖像就好取決於傳感器被堵塞。

那麼,如果沒有應用程序只是不啓動傳感器沒有阻塞,我怎麼能叫finish()?

回答

0

Proximty傳感器的值在啓動時不爲0,當其覆蓋/閉塞時爲0,這就是爲什麼它正在調用finish();.請相應地調整您的代碼。

一個快速的解決方法是使用值1而不是0,並保持原樣。