我尝试制作我的第一个 android 应用程序。当我暂停然后恢复主要活动(基本上是在显示设置菜单时)时,它运行良好但奇怪的是,应用程序 FPS 降低了很多,我不知道为什么。
这是我的结构:
DrawView 是一个实现 View 类的类,它有一个“更新”方法,它在每一帧(计算和绘图)上做这些事情。
主要活动创建一个 DrawView(作为内容视图)并使用一个 Handler 和一个 Runnable 请求它每 10 毫秒刷新一次。
这是 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 计数器,我注意到 FPS 从开始时的 100+ 下降到打开然后关闭首选项 Activity 后的上限 60。
我不明白我的错误在哪里。