Android自學筆記-16-任務棧

來源:互聯網
上載者:User

在AndroidManifest中Activity的launchMode有四種類型:

1.standard

2.singleTop

3.singleTask

4.singleInstance

今天就簡單介紹一下,附上一個參考地址,人家寫的牛逼http://blog.csdn.net/moreevan/article/details/6788048

下面還是看代碼吧,都放到注釋裡了:

package com.mxy;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.View;/** * 進程 參考http://blog.csdn.net/niu_gao/article/details/7202300 * Activity四種啟動模式 * standard 按照棧先進後出的順序儲存 * 例如 依次點開 act1 act2 act1 act2 點擊返回的時候就是 act2 act1 act2 act1  雖然裡面有兩個act1 兩個act2 但卻都不相同 *  * singleTop 當進入的Activity已經在棧頂了,不會再建立新的Activity放入棧中,而是複用棧頂的activity,但是會調用onResume方法 * 例如 act2是singleTop的 依次點擊 act1 act1 act2 act2 act2 這時候棧中存著的就是act1 act1 act2 點擊返回的餓時候就是act2 act1 act1 * 在瀏覽器中得書籤會用到該模式 *  * SingleTask 一般和singleTop操作模式類似,如果他發現任務棧裡面已經有了要啟動的這個Activity,他會清空這個Activity所在的任務棧上面的所有Activiy,然後直接複用這個已經存在的Activity 。 * 例如 act2是SingleTask的 依次進入 act1 act2 act1 act2 act1 act2這時候棧中存在的是act1 act2 點擊返回的時候就是act2 act1 *  * singleinstance 被設定了singleinstance得Activity,會放入一個獨自的任務棧,然後其他未設定為singleinstance的任務棧,如果設定了singleinstance得Activity * 被請求了,那這時候這個任務棧的優先順序就比另一個普通的任務棧的層級高,就會被運行,如果其他的Activity被請求,就會降低該任務棧的優先順序 * 例如 act2是singleinstance的 這時候我們 * 點擊act1 後 * 任務棧          優先順序   棧中資料(左邊表示棧頂)  * 普通         低      act1 *點擊act2後 * 普通          低      act1 * 單例              高       act2 * 點擊act3後 * 普通          高      act1 act3 * 單例              低       act2 *點擊act2後 * 普通          低      act1 act3 * 單例              高       act2   * @author mxy * */public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    @Overrideprotected void onResume() {Log.i("mxy", "MainActivity");super.onResume();}    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }        public void click(View view){    Intent intent = new Intent(this,SecondActivity.class);    startActivity(intent);    }    }
例子源碼地址:http://download.csdn.net/detail/mengxiangyue/7262467

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.