熟悉activity,service結(jié)構(gòu)和過程
了解并熟悉內(nèi)存分配和垃圾回收機(jī)制,能夠合理的控制app的內(nèi)存抖動。
能夠熟練的控制不同層級view之間的事件分發(fā)。" />
能夠熟練控制線程, 使用線程通信控制app
熟悉activity,service結(jié)構(gòu)和過程
了解并熟悉內(nèi)存分配和垃圾回收機(jī)制,能夠合理的控制app的內(nèi)存抖動。
能夠熟練的控制不同層級view之間的事件分發(fā)。
啟動頁面:
/**
*啟動頁面
*
*@version 0.0.01
*@date 2019-8-15
*@author eloy
*/
public class Splash extends AppCompatActivity{
/**
*在此存放每個(gè)activity的根布局(如果用戶使用某些手段繞過splah activity,直接啟動主頁面會導(dǎo)致程序崩潰)
*/
public static final ArrayList<View> rootView = new ArrayList<View>();
private void init(){
//添加splash頁面view
View splah = getLayoutInflator.inflate(R.layout.splash, null);
rootView.add(splash);
//添加main頁面view
View main = getLayoutInflator.inflate(R.layout.main, null);
rootView.add(main);
}
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(Splah.rootView.get(0));
initView();
//....
}
/**
*跳轉(zhuǎn)到main頁面
*/
private void jump(){
new CountDownTimer(){
@Override
onTick(long remain){
}
@Override
onFinish(){
startActivity(new Intent(Splash.this, Main,class));
finish();
}
}.start();
}
/**
*自寫一個(gè)CountDownTimer
*/
private static abstract class CountDownTimer extends Thread{
private long count = 0L;
private long period = 1000L;
CountDownTimer(long count){
this.count = count;
}
CountDownTimer(long count,long period ){
this.count = count;
this.period=period;
}
public abstract void onTick(long remain);
public abstract void onFinish();
@Override
public void cancel(){
super.cancel();
this.interrupt();
}
@Override
public synchronized void run(){
super.run();
while(!interrupted() && count>0){
long start = System.currentTimeMills();
count