最近调试看别人的android的程序,我对android的整个机制有一些不大理解,主要是程序中有一个LauchActivity.java的文件,其代码如下:
package com.testCamera;import android.app.Activity;
import android.os.Bundle;public class LaunchActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
而项目中还有一个testCamera.java,其中部分代码如下:
package com.testCamera;import java.util.Timer;
import java.util.TimerTask;public class testCamera extends Activity {
/** Called when the activity is first created. */
private SurfaceView sfvCamera;
private SFHCamera sfhCamera;
private ImageView imgView;
private View centerView;
private TextView txtScanResult;
private Timer mTimer;
private MyTimerTask mTimerTask;
// 按照标准HVGA
final static int width = 480;
final static int height = 320;
int dstLeft, dstTop, dstWidth, dstHeight; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.setTitle("Android条码/二维码识别Demo-----hellogv");
imgView = (ImageView) this.findViewById(R.id.ImageView01);
centerView = (View) this.findViewById(R.id.centerView);
sfvCamera = (SurfaceView) this.findViewById(R.id.sfvCamera);
sfhCamera = new SFHCamera(sfvCamera.getHolder(), width, height,
previewCallback);
txtScanResult=(TextView)this.findViewById(R.id.txtScanResult);
// 初始化定时器
mTimer = new Timer();
mTimerTask = new MyTimerTask();
mTimer.schedule(mTimerTask, 0, 80);
}
后面部分省略。
我主要不解的是,两个文件代码同属于com.testCamera包,而我觉得onCreate应该是启动程序吧?那为什么两个文件中都写了onCreate(...)的代码呢?运行哪一个呢?而且删了还会运行出错,这个到底是为什么呢?
启动不是有一个onCreate(...)就可以了的吗?LauchActivity.java中的onCreate有什么用呢?
求解。。谢谢
package com.testCamera;import android.app.Activity;
import android.os.Bundle;public class LaunchActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
而项目中还有一个testCamera.java,其中部分代码如下:
package com.testCamera;import java.util.Timer;
import java.util.TimerTask;public class testCamera extends Activity {
/** Called when the activity is first created. */
private SurfaceView sfvCamera;
private SFHCamera sfhCamera;
private ImageView imgView;
private View centerView;
private TextView txtScanResult;
private Timer mTimer;
private MyTimerTask mTimerTask;
// 按照标准HVGA
final static int width = 480;
final static int height = 320;
int dstLeft, dstTop, dstWidth, dstHeight; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.setTitle("Android条码/二维码识别Demo-----hellogv");
imgView = (ImageView) this.findViewById(R.id.ImageView01);
centerView = (View) this.findViewById(R.id.centerView);
sfvCamera = (SurfaceView) this.findViewById(R.id.sfvCamera);
sfhCamera = new SFHCamera(sfvCamera.getHolder(), width, height,
previewCallback);
txtScanResult=(TextView)this.findViewById(R.id.txtScanResult);
// 初始化定时器
mTimer = new Timer();
mTimerTask = new MyTimerTask();
mTimer.schedule(mTimerTask, 0, 80);
}
后面部分省略。
我主要不解的是,两个文件代码同属于com.testCamera包,而我觉得onCreate应该是启动程序吧?那为什么两个文件中都写了onCreate(...)的代码呢?运行哪一个呢?而且删了还会运行出错,这个到底是为什么呢?
启动不是有一个onCreate(...)就可以了的吗?LauchActivity.java中的onCreate有什么用呢?
求解。。谢谢
startactivity可以启动指定的activity
startactivity可以启动指定的activity
onCreate (Frist) - onStart (Frist) – onResume (Frist)启动SecondActivity时,它的执行顺序为:
onPause (Frist) – onCreate (Second) – onStart (Second) -
onResume (Second) – onStop (Frist)
说明:只有在第二个Activity启动完成后才会停止第一个Activity再次退回到FristActivity,它的执行顺序为:
onPause (Second) – onRestart (Frist) -onStart (Frist) – onResume (Frist) –
onStop (Second) – onDestroy (Second) 退出FristActivity,它的执行顺序为:
onPause (Frist) – onStop (Frist) – onDestroy (Frist)