我試着製作我的第一個android應用程序。它運行良好,但奇怪的是,當我暫停然後恢復主要活動時(基本上顯示設置菜單時)應用程序FPS減少了很多,我不知道爲什麼。恢復活動時FPS減少
這裏是我的結構:
DrawView是一個實現View類的類,它有一個「更新」方法,它在每個幀(計算和繪圖)上執行這些操作。
主要活動創建一個DrawView(作爲內容視圖),並使用Handler和Runnable請求它每10ms刷新一次。
這裏是Main.java的(簡化的)代碼:
public class Main extends Activity {
DrawView drawView;
private Handler myHandler;
private Runnable myRunnable = new Runnable() {
public void run() {
drawView.update();
myHandler.postDelayed(this, 10);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drawView = new DrawView(this);
setContentView(drawView);
myHandler = new Handler();
myHandler.post(myRunnable);
}
@Override
protected void onPause() {
super.onPause();
if(myHandler != null) myHandler.removeCallbacks(myRunnable);
}
@Override
protected void onResume() {
super.onResume();
if(myHandler != null) myHandler.post(myRunnable);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId())
{
case R.id.menu_close:
finish();
break;
case R.id.menu_settings:
Intent settingsActivity = new Intent(getBaseContext(), Preferences.class);
startActivity(settingsActivity);
}
return super.onOptionsItemSelected(item);
}
}
通過實施在DrawView.update方法的FPS計數器,我注意到,從100+的FPS降在開始時到60開幕後的最高限額,然後關閉優先活動。
我不明白我的錯誤在哪裏。
哦,謝謝,現在看來很明顯。我不知道OnResume在活動開始時被稱爲。 –