我的UI线程没有。在我的应用程序中完成的所有操作都在后台线程中协调。当这个线程没有被启动时,行为不会改变。
由于NavigationDrawer滞后,我只将导航覆盖在主布局上。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final RelativeLayout nav = (RelativeLayout) findViewById(R.id.mainNav);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(nav.getVisibility() == View.INVISIBLE){nav.setVisibility(View.VISIBLE);}else{nav.setVisibility(View.INVISIBLE);}
}
});
frgPlayer = new Player();
showFragment(frgPlayer); //load default fragment
Handler handler = new Handler(Looper.getMainLooper()){
@Override
public void handleMessage(Message inputMessage) {
frgPlayer.handleMessage(inputMessage);
}
};
audioController = new AudioController(handler);
//audioController.start(); //disabled for debugging
}
protected void showFragment(Fragment f){
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.fragment_container,f)
.commit();
}
现在按此按钮时,应用程序会滞后最多5秒钟。可能是什么原因?
在分析ThreadedRenderer.nSyncAndDrawFrame时需要最多5.600.120μs。
我没有显示太多的图形,并且在drawable文件夹中有5个图像,大约50kb。
有趣的是,这不会发生在模拟器中。模拟器的API版本可能比我的设备略高。