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),因为它不是从主屏启动的。



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