Wednesday, September 2, 2015

Bài 4 : Vòng đời của ứng dụng Android (Life cycle Android)

Chào các bạn , chúng ta tiếp tục loạt bài hướng dẫn Android tutorial .
Hôm nay mình sẽ giới thiệu cho các bạn về hoạt động của một ứng dụng Android.
1. Thế nào là Appliction Android và Activity ?
a . Appliction Android 
Khi chương trình biên dịch thành công sẽ tạo ra một tập tin có đuôi .apk . Tập tin này có thể thi triển được trên các di động dùng hệ điều hành Android của các bạn . Ta gọi đó là một Application Android
b. Activity .
Activity các bạn hiểu nó như một màn hình hay form hiển thị giống như form swing , hay C# ... nhưng hiển thị trên mobile hay các device sài hệ điều hành Android.
2 . Stack Activity .
Stack acitvity : là một dạng hiển thị các activity theo cấu trúc LIFO ( Last in first out) . Không nói đâu xa , khi các bạn sử dụng device của các bạn . Mở 1 app của các bạn lên , sau đó mở liên tiếp nhiều màn hình ( activity) lên . Sau đó các bạn ẩn nút back trở lại . Thì nó sẽ quay lại màn hình trước đó của các bạn .
Áp dụng vào sơ đồ trên thì các bạn sẽ hiểu ngay.
3. Vòng đời ứng dụng (Life cycle Android appliction)
onCreate()
Là method được gọi lại hoặc gọi đầu tiên khi khởi tạo Activity
onStart()
Là method được gọi lại hoặc gọi tới sau onCreate , làm cho user có thể thấy được application
onResume()
Là method gọi tới khi người dùng bắt đầu tương tác ứng dụng
onPause()
Các hoạt động bị tạm dừng và không nhận bất kỳ lệnh nào nữa. Và các hoạt động trước đó sẽ được tiếp tục
onStop()
Được gọi tới khi activity không còn được nhìn thấy nữa
onDestroy()
Method này được gọi tới khi app bị destroy .
onRestart()
Method này được gọi tới khi app đã bị stop.
Chúng ta sẽ vào một ví dụ để các bạn có thể hình dung dễ hơn.
a. activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="nosoft.com.demolifecycle.MainActivity" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
</RelativeLayout>
b. AndroidMenifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="nosoft.com.demolifecycle"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
c. MainActivity.java
package nosoft.com.demolifecycle;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
/**
 * 
 * @author Nosoft
 *
 */
public class MainActivity extends Activity {
String msg = "Nosoft : ";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(msg, "onCreate() start");
}
/** Called when the activity is about to become visible. */
@Override
protected void onStart() {
super.onStart();
Log.d(msg, "onStart() start");
}
/** Called when the activity has become visible. */
@Override
protected void onResume() {
super.onResume();
Log.d(msg, "onResume() start");
}
/** Called when another activity is taking focus. */
@Override
protected void onPause() {
super.onPause();
Log.d(msg, "onPause() start");
}
/** Called when the activity is no longer visible. */
@Override
protected void onStop() {
super.onStop();
Log.d(msg, "onStop() start");
}
/** Called just before the activity is destroyed. */
@Override
public void onDestroy() {
super.onDestroy();
Log.d(msg, "onDestroy() start");
}
}
d. Results.
Full code example : here
pass extract :https://androidandshare.blogspot.com
Chúng ta có thể tự động gen các method này như sau.
các bạn chuột phải vào MainActivity , hay activity muốn generate  ==> Chọn sources ==> Override/ Implements methods..
Sau đó chọn các method mà mình muốn sử dụng và chọn OK

4. Tasks là gì ?
Tasks là sự trao đổi công việc giữa các ứng dụng với nhau trong Android.
 Ví dụ một ứng dụng invite friend , khi các bạn click vào nó . Nó sẽ gọi tới một app email , hay Facebook khác để thực hiện tiếp công việc mà người dùng muốn làm .
Tạm thời dừng tại đây. Chúng ta sẽ gặp lại nhau trong loạt bài tiếp theo.

No comments:

Post a Comment