Android入門之理解Task


       app上的activity1有兩個按鈕,一個按鈕跳轉到Activity2,另外一個按鈕跳轉到打電話的頁面,打電話這個功能不屬於app1,我們假設它爲app2。

       首先默認進入app1的activity1,點擊button1後跳轉到activity2,再點擊activity2的按鈕後調轉到activity1,再點擊button2跳轉到打電話頁面,最後依次點返回按鈕,大家看Task棧效果.

關鍵代碼展示:

MainActivity代碼展示:

package cn.bzu.bztc.taskdemo;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity
{

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
	public void toSecond(View view){
		Intent intent = new Intent();
		intent.setClass(this, SecondActivity.class);
		startActivity(intent);
	}
	public void dial(View view){
		Intent intent=new Intent();
		intent.setAction(Intent.ACTION_CALL);
		intent.setData(Uri.parse("tel://5556"));
		startActivity(intent);
	}

}
SecondActivity代碼展示:

package cn.bzu.bztc.taskdemo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class SecondActivity extends Activity
{
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);
	}
	public void toFirst(View view){
		Intent intent=new Intent();
		intent.setClass(this, MainActivity.class);
		startActivity(intent);
	}
}
總結:Task

Task就是一個棧,棧的特點:後進先出

        一個Task是用戶可以完成一個特定目標的一組Activity。與Activity屬於哪個Application無關。除非明確地新建一個Task,(參考打斷Task),用戶啓動的所有Activity都默認是當前Task的一部分。這些Activity可以屬於同一個Application或者屬於不同的Application。一個Task可以是從跳轉到下一個界面,在返回,然後點擊打電話按鈕,這些都存在於不同的Activity中。

啓動Task的Activity被稱作根Activity。通常,Task是從應用管理器、主屏或者最近Task(長按HOME鍵)開始的。用戶可以通過點擊根Activity的圖標回到Task裏去,就像啓動這個Activity一樣。在這個Task中,Back鍵可以回到這個Task的前一個Activity裏。Activity棧可以由一個或多個Task組成。

打斷Task

     Task的一個重要特性就是,用戶可以中斷它當前正在做的事(它的任務),去進行另一個Task,然後可以返回到原來的那個Task去完成它。這個特性的意圖,就是用戶可以同時運行多個任務,並且可以在這些任務間切換;有兩種主要的方法離開一個Task,這兩種情況中,

      用戶被Notification打斷--來了一個通知,用戶開始關注處理這個通知。

      用戶決定開始另一個任務--用戶按了HOME鍵,然後開始了另一個Application

當然,除了上面提到了兩種方法,還存在第三種方法開始一個新任務,即:在代碼中startActivity的時候,定義它要開始一個新Task。地圖和瀏覽器兩個應用就是這麼做的。例如,在電郵中點擊一個地址,會在新Task調出地圖Activity,在電郵中點擊一個鏈接,會在新的Task中調出瀏覽器。在這種情況下,BACK鍵會回到上一個Activity(另一個Task中的電郵Activity),因爲它不是從主屏啓動的。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章