Chương 2- Bài 1 Chu kỳ sống của 1 activity trong ứng dụng Android

Thảo luận trong 'Điện thoại, viễn thông' bắt đầu bởi bka15, 11/8/12.

  1. bka15 New Member

    bka15

    Tham gia ngày:
    18/7/12
    Bài viết:
    128
    Đã được thích:
    105
    Điểm thành tích:
    0
    Chương này sẽ chỉ cho các bạn các tạo 1 activity. Để tạo 1 activitity, chúng ta tạo 1 lớp Java extends từ Activity như sau:
    package androidvn.com.chapter2Activity;

    import android.os.Bundle;
    import android.app.Activity;

    public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    }

    }


    Trong lớp activity này nó sẽ load các thành phần UI (giao diện người dùng) sử dụng file XML in res/layout, chúng ta sẽ load UI từ file activity_main.xml :
    setContentView(R.layout.activity_main);

    Mỗi activity chúng ta sử dụng trong ứng dụng phải được khai báo trong file AndroidManifest.xml :
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="androidvn.com.chapter2Activity"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15" />

    <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
    android:name=".MainActivity"
    android:label="@string/title_activity_main" >
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    </application>

    </manifest>


    Chu kỳ sống của Activity thông qua các hàm sau:
    onCreate() – Được gọi khi activity được tạo lần đầu tiên
    onStart()- Được gọi khi activity xuất hiện (visible) tới người dùng
    onResume()- Được gọi khi activity bắt đầu tương tác với người dùng
    onPause()- Được gọi khi activity hiện tại bị tạm dừng và 1 activity khác tiếp tục
    onStop()- Được gọi khi activity trong 1 khoảng thời gian dài không xuất hiện tới người dùng
    onDestroy()- Được gọi khi activity bị hủy bởi hệ thống
    onRestart()- Được gọi khi activity bị dừng và bắt đầu lại
    http://337play.net/attachments/beginner/53d1344780365-chuong-2-bai-1-chu-ky-song-cua-1-activity-trong-ung-dung-android-chu-ky-song-activity.jpg
    Cách tốt nhất để hiểu các giai đoạn khác nhau của activity là chúng ta hãy thể hiện các sự kiện đó trong 1 ứng dụng android cụ thể:
    package androidvn.com.chapter2Activity;

    import android.os.Bundle;
    import android.util.Log;
    import android.app.Activity;

    public class MainActivity extends Activity {

    String tag = "Chu ky song cua activity";

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.d(tag, "goi ham onCreate()");
    }

    public void onStart()
    {
    super.onStart();
    Log.d(tag, "goi ham onStart()");
    }

    public void onRestart()
    {
    super.onRestart();
    Log.d(tag, "goi ham onRestart() ");
    }

    public void onResume()
    {
    super.onResume();
    Log.d(tag, "goi ham onResume() ");
    }

    public void onPause()
    {
    super.onPause();
    Log.d(tag, "goi ham onPause() ");
    }

    public void onStop()
    {
    super.onStop();
    Log.d(tag, "goi ham onStop() ");
    }

    public void onDestroy()
    {
    super.onDestroy();
    Log.d(tag, "goi ham onDestroy()");
    }
    }

    Ấn F11 để build ứng dụng lên thiết bị android hoặc emulator.
    Mở logcat lên để xem chế độ debug. Nếu ai chưa biết mở logcat mình sẽ chỉ luôn: trên thanh công cụ của Eclipse chọn Window/Show View/ Other/ Android/ Logcat.
    Khi ứng dụng mở lần đâu tiên:
    08-11 09:43:07.429: D/Chu ky song cua activity(803): goi ham onCreate()
    08-11 09:43:07.429: D/Chu ky song cua activity(803): goi ham onStart()
    08-11 09:43:07.429: D/Chu ky song cua activity(803): goi ham onResume()

    http://337play.net/attachments/beginner/54d1344780389-chuong-2-bai-1-chu-ky-song-cua-1-activity-trong-ung-dung-android-logcat.jpg
    Click vào nút Home :
    08-11 09:48:46.829: D/Chu ky song cua activity(803): goi ham onPause()
    08-11 09:48:47.879: D/Chu ky song cua activity(803): goi ham onStop()

    Mở lại ứng dụng:
    08-11 09:49:54.309: D/Chu ky song cua activity(803): goi ham onRestart()
    08-11 09:49:54.309: D/Chu ky song cua activity(803): goi ham onStart()
    08-11 09:49:54.309: D/Chu ky song cua activity(803): goi ham onResume()

    Click vào nút Back:
    08-11 09:51:23.800: D/Chu ky song cua activity(803): goi ham onPause()
    08-11 09:51:24.809: D/Chu ky song cua activity(803): goi ham onStop()
    08-11 09:51:24.809: D/Chu ky song cua activity(803): goi ham onDestroy()


    Như vậy:
    - Sử dụng onCreate() để tạo và khai báo các đối tượng mà chúng ta sẽ sử dụng trong ứng dụng
    - Sử dụng onResume() để bắt đầu một service hoặc code cần thiết trong khi chạy activity.
    - Sử dụng onPause() để stop 1 service hoặc code mà không cần cho activity
    - Sử dụng onDestroy() để giải phóng tài nguyên trước khi activity bị hủy

    Đây là code của ứng dụng:
    Chapter2Activity.rar
    password giải nén là http://337play.net
     

    Các file đính kèm:

    2 people like this.
    Đang tải...
  2. khaipt New Member

    khaipt

    Tham gia ngày:
    30/6/12
    Bài viết:
    22
    Đã được thích:
    34
    Điểm thành tích:
    0
    sao mấy hình trong file attach của bác để bé thế. Ae khó nhìn quá
     
  3. rubipikachu New Member

    rubipikachu

    Tham gia ngày:
    8/4/13
    Bài viết:
    3
    Đã được thích:
    0
    Điểm thành tích:
    0
    Giới tính:
    Nam
    thanks
     

Chia sẻ trang này