Activity的四种启动模式

Activity的四种启动模式:

             1.standard:该启动模式为Android默认启动模式,每当启动一个activity就会在任务栈中创建一个                                       activity,这种模式默认的但是非常的浪费空间,但是可以有效的保存之前启动的activity。用于保证之前页面不丢失的时           候。

             2.single Top:该启动模式是在查看任务栈顶和你将要启动的activity是否是一个activity,是一个就直接复用,否则就新创一个实例,这个经常用于类似聊天界面,当有人给你发消息时更新activity。

              3.single Task:该启动模式是在任务栈中看是否有和你一样的activity,有则直接把该activity之上的activity全部弹出使之置于栈顶。常用于一个程序的入口处。

              4.single Instance:该启动模式是再创建一个任务栈把activity放进去。此模式用于不同应用调用一个activity时应用。用于程序和界面分开的时候。

 

 

Activity的四种启动模式_第1张图片

 

   自己写的一个demo:

四个activity基本一样就只发一个了

Java部分:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class standard extends AppCompatActivity implements View.OnClickListener{

    private Button btn_standard;
    private Button btn_singletop;
    private Button btn_singletask;
    private Button btn_singleinstence;
    private TextView tv_activity;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_standard);
        Log.i("TAG","intent:_______________"+this.toString());
        initView();
    }

    private void initView() {
        btn_standard = (Button) findViewById(R.id.btn_standard);
        btn_singletop = (Button) findViewById(R.id.btn_singletop);
        btn_singletask = (Button) findViewById(R.id.btn_singletask);
        btn_singleinstence = (Button) findViewById(R.id.btn_singleinstence);
        tv_activity = (TextView) findViewById(R.id.tv_activity);
        btn_standard.setOnClickListener(this);
        btn_singletop.setOnClickListener(this);
        btn_singletask.setOnClickListener(this);
        btn_singleinstence.setOnClickListener(this);
        tv_activity.setText(this.toString());
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn_standard:
                this.startActivity(new Intent(this,standard.class));
                break;
            case R.id.btn_singletop:
                this.startActivity(new Intent(this,singleTop.class));
                break;
            case R.id.btn_singletask:
                this.startActivity(new Intent(this,singleTask.class));
                break;
            case R.id.btn_singleinstence:
                this.startActivity(new Intent(this,singleInstance.class));
                break;
        }
    }
}

xml部分:


    
    
    

AndroidManifest.xml部分:

 
        
        
        
        
            
                
                
            
        
    

以上就是我写的个人理解了,作为菜鸟的我第一次写,请多多支持。

你可能感兴趣的:(Android,Activity)