根据哪些逻辑super.onDestroy();在析构函数中排在最前面?例如:
protected void onDestroy() {
super.onDestroy();
releaseMediaPlayer();
}
Run Code Online (Sandbox Code Playgroud)
并不是:
protected void onDestroy() {
releaseMediaPlayer();
super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)
就像在c ++,obj-c,pascal等?
凡在onStart(),onStop(),onDestroy()的活动我打电话super.onStart(),super.onStop(),super.onDestroy()?
可以在该onActivityResult(int requestCode, int resultCode, Intent data)方法中读取语音识别的结果,如该示例中所示.这个方法在类中重写了相同的方法Activity:为什么对超类方法的调用不是第一个语句?
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) {
// Fill the list view with the strings the recognizer thought it could have heard
// ...
}
super.onActivityResult(requestCode, resultCode, data);
}
Run Code Online (Sandbox Code Playgroud) 我有android viewpager幻灯片的问题.我希望在最短时间后显示viewpager布局.这是我的代码示例. 我的主要课程:
public class MainActivity extends Activity {
private ViewPager mViewPager;
private SwipeAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mViewPager = (ViewPager) findViewById(R.id.pager);
// set the adapter
adapter = new SwipeAdapter(MainActivity.this);
mViewPager.setAdapter(adapter);
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
我的适配器类:
public class SwipeAdapter extends PagerAdapter {
private LayoutInflater mInflater;
private static int[] …Run Code Online (Sandbox Code Playgroud) WAY1:
@Override
protected void onPause() {
super.onPause();
// do something urgent
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
WAY2:
@Override
protected void onPause() {
// do something urgent
doSomething();
super.onPause();
}
Run Code Online (Sandbox Code Playgroud)
所不同的是调用顺序doSomething()和super.onPause().当我使用WAY1时,如果doSomething()成本太高,我会得到错误:W/ActivityManager( 4347): Activity pause timeout for ActivityRecord.
pause timeout如果我使用WAY2,我会避免错误吗?
我检查了AOSP,但是我很难理解Activity的调用过程.
在覆盖活动的ondestroy时,我应该在super.onDestroy()之前或之后放置命令吗?
protected void onDestroy() {
//option 1: callback before or ...
super.onDestroy();
//option 2: callback after super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)
(现在我担心:如果super.onDestroy太快,它将永远不会到达选项2.)