今天學了Activity的四種啟動模式
standard:默認的啟動模式,每一次的啟動,系統都會創建它的新實例,即使該頁面已經存在了
適合standard場景:設置頁面或每次進入都需要初始化的頁面。
singleTop:當該模式的Activity已經位於堆疊的頂端時,不會創建新的實例,而是直接使用已經存在的Activity
適合singleTop場景:消息通知中心或重複操作
singleTask:在singleTask模式下,如果當前Activity已經存在於堆疊中,那麼系統將會把目前Activity上方的其他 Activity彈出,並將這個Activity移到前台,而不會創建新的實例
適合singleTask場景:應用的主頁。
singleInstance:強制該Activity在一個單獨的TASK中運行,這個TASK中只能包含這一個Activity
適合singleInstance場景:例如播放視頻的全屏模式 Activity,需要獨立於其他應用程序
今天講的東西比較抽象
藉由實際去改Intent去實際操作才能比較好知道怎麼使用
LoginInputActivity
public class LoginInputActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_login_input);
findViewById(R.id.btn_jumpsuccess).setOnClickListener(this);
}
@Override
public void onClick(View view) {
Intent intent = new Intent(this, LoginSuccessActivity.class);
intent.setFlags(intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
LoginSuccessActivity
public class LoginSuccessActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_login_success);
}
}
藉由兩個Acitivy還有設計一個跳轉按鈕
就可以在模擬機上體會畫面差別