從JVM剖析Java的類的加載和卸載機制。本站提示廣大學習愛好者:(從JVM剖析Java的類的加載和卸載機制)文章只能為提供參考,不一定能成為您想要的結果。以下是從JVM剖析Java的類的加載和卸載機制正文
之前編程的時刻,碰到倒計時的功效時,常常本身去寫,但其實Android曾經幫封裝好了一個倒計時類CountDownTimer,實際上是將後台線程的創立和Handler隊列封裝成了一個便利的類挪用。
閃屏頁用到了handler和CountDownTimer類,還需設置裝備擺設一下Activity的主題,這裡是:android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 全屏主題的意思。
給年夜家展現下後果圖:
代碼以下所示:
package com.example.shanping; import java.lang.ref.WeakReference; import com.example.shanping.MyActivity.MyCountDownTimer; import android.os.Bundle; import android.os.CountDownTimer; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.content.Intent; import android.util.Log; import android.view.Menu; import android.widget.TextView; public class MainActivity extends Activity { private MyCountDownTimer mc; private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.textView1); mc = new MyCountDownTimer(3000, 1000); mc.start(); handler.postDelayed(new Runnable() { @Override public void run() { Intent intent=new Intent(MainActivity.this,MyActivity.class); startActivity(intent); } }, 3000); } private Handler handler=new Handler(); /** * 繼續 CountDownTimer 防備 * * 重寫 父類的辦法 onTick() 、 onFinish() */ class MyCountDownTimer extends CountDownTimer { /** * * @param millisInFuture * 表現以毫秒為單元 倒計時的總數 * * 例如 millisInFuture=1000 表現1秒 * * @param countDownInterval * 表現 距離 若干微秒 挪用一次 onTick 辦法 * * 例如: countDownInterval =1000 ; 表現每1000毫秒挪用一次onTick() * */ public MyCountDownTimer(long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInterval); } public void onFinish() { tv.setText("正在跳轉"); } public void onTick(long millisUntilFinished) { tv.setText("倒計時(" + millisUntilFinished / 1000 + ")"); } } }
上面給年夜家分享一段代碼關於Android完成啟動閃屏界面後果
閃屏,就是SplashScreen,也能夠說是啟動畫面,就是啟動的時刻,閃(展現)一下,連續數秒後,主動封閉。
android的完成異常簡略,應用Handler對象的postDelayed辦法便可以完成。在這個辦法裡傳遞一個Runnable對象和一個延遲的時光。該辦法完成了一個延遲履行的後果,延遲的時光由第2個參數指定,單元是毫秒。第一個參數是Runnable對象,外面包括了延遲後須要履行的操作。demo代碼以下:
java code:
package com.mstar; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; public class ActSplashScreen extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.shan); // 閃屏的焦點代碼 new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(ActSplashScreen.this,DialogTest.class); //從啟動動畫ui跳轉到主ui startActivity(intent); ActSplashScreen.this.finish(); // 停止啟動動畫界面 } }, 3000); //啟動動畫連續3秒鐘 } }
xml code:
<?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="閃一下" > </TextView> </LinearLayout>