1. 程式人生 > >的啟動模式 之(一)Standard模式

的啟動模式 之(一)Standard模式

Activity四種啟動模式

  1. standard: 標準模式.這是預設載入的模式
  2. singleTop: 這種模式基本和standard模式基本相同.但是有一點不同:當將要被啟動Activity已經位於Task棧頂時,系統就不在建立例項,直接使用該Activity例項
  3. singleTask: 這種啟動模式的Activity在同一個Task中只有一個例項.當採用singletask模式啟動Activity時,分別如下三種情況:A. 如果將要啟動的Activity不存在,系統將會建立Activity的例項,並將它加入到Task棧頂. B. 如果將要開啟的Activity已經位於 Task棧頂,此時與singleTop模式相同. C.如果將要啟動的Activity已經存在,但沒有位於棧頂,系統將會把位於該Activity上面所有的Activity移出Task棧,然後使啟動的Activity轉入棧頂.
package com.test.activitylunchmode.standard;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

/**
 * Activity 啟動模式 之 Standard
 */
public class StandardActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); setContentView(layout); //建立一個TextView 來顯示 Activity 的 TaskId
TextView tv = new TextView(this); tv.setText("該 Activity為:"+this.toString()+"\n"+"Task ID 為: "+this.getTaskId()); Log.d("MainActivity", this.toString()); Button btn = new Button(this); btn.setText("啟動 StandardActivity"); layout.addView(tv); layout.addView(btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(StandardActivity.this, StandardActivity.class); startActivity(intent); } }); } }