วันจันทร์ที่ 3 กันยายน พ.ศ. 2555

การแก้ไขให้ Android Application แสดง Splash Screen เพียงครั้งเดียว

เมื่อเราสร้าง Splash Screen ขึ้นมาแล้ว Android จะนับเป็น Activity ที่เปิดขึ้นมาและเมื่อเราเปิด Activity อื่นๆ Activity ของ Splash Screen จะถูกเก็บเข้าไปยังหน่วยความจำทำให้เมื่อเรากดปุ่ม back จากใน Activity หลักของเราจะทำให้กลับมาที่หน้าของ Splash Screen อีกทางแก้ก็คือให้แก้ไขไฟล์ AndroidManifest.xml แล้วใส่ android:noHistory="true" เข้าไปยังแท๊ก Activity ของ Splash Screen ซึ่งจะทำให้ Activity ของ Splash Screen ไม่ถูกเก็บเข้าสู่หน่วยความจำเมื่อเรากด back จาก Activity หลักก็จะทำให้ออกจาก Application ได้ทันที
ที่มา: stackoverflow.com 

การสร้าง Splash Screen สำหรับ Android Application

เนื่องจากผมประสบปัญหา Splash Screen ของ App Android ที่เขียนไว้ไม่สามารถใช้งานได้บน Android 4.0 ผมขออ้างอิงวิธีการแก้ปัญหาจาก StackOverFlow โพสนี้นะครับ โดย R.layout.splash คือหน้าจอของ Splash Screen ที่เราสร้างขึ้นเพื่อแสดงนะครับ ส่วน com.lars.DrinkRecOrder.splashscreen.DrinkRecOrderActivity คือ Activity ที่จะให้เปิดขึ้นเมื่อแสดง Splash Screen จบ
package com.lars.DrinkRecOrder;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
public class SplashScreen extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);

        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            public void run() {

                /* start the activity */
                startActivity(new Intent("com.lars.DrinkRecOrder.splashscreen.DrinkRecOrderActivity"));
            }
        }, 5000);

    }
}
ที่มา: stackoverflow.com