的啟動模式 之(一)Standard模式
阿新 • • 發佈:2019-01-01
Activity四種啟動模式
- standard: 標準模式.這是預設載入的模式
- singleTop: 這種模式基本和standard模式基本相同.但是有一點不同:當將要被啟動Activity已經位於Task棧頂時,系統就不在建立例項,直接使用該Activity例項
- 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);
}
});
}
}