<Activity>的启动模式 之(二)SingleTask模式

来源:互联网 发布:java跳跃表 编辑:程序博客网 时间:2024/05/18 00:00

一路坎坷走过,也就长大了。时间桥头,香花满径。亲爱的梦想家,现在不对自己狠一点,当“少年”等不了你的时候,再狠也是徒劳无功!


程序将SecondActivity 的启动模式设置为 singleTask.
当程序启动时默认打开 SingleTaskActivity ,点击该Activity上的按钮时,系统已singleTask模式打开 SecondActivity ,此时Task 任务栈内有2个Activity(从底向上); SingleTaskActivity —> SecondActivity
再次点击SecondActivity 界面上的 按钮,系统以标准模式再次加载一个新的 SingleTaskActivity .此时Task 任务栈内有3个Activity(从底向上); SingleTaskActivity —> SecondActivity —>SingleTaskActivity ;
在 SingleTaskActivity 界面点击按钮打开 系统再次以singleTask模式打开 SecondActivity .系统将位于SecondActivity 上面所有的Activity移出.使 SecondActivity 进入栈顶. 此时的Task 任务栈内又再次有2个Activity(从底向上); SingleTaskActivity —> SecondActivity

package com.test.activitylunchmode.singleTask;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.LinearLayout;import android.widget.TextView;public class SingleTaskActivity extends AppCompatActivity {    @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("启动 SecondActivity");        layout.addView(tv);        layout.addView(btn);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                Intent intent = new Intent(SingleTaskActivity.this, SecondActivity.class);                startActivity(intent);            }        });    }}

package com.test.activitylunchmode.singleTask;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.LinearLayout;import android.widget.TextView;public class SecondActivity extends AppCompatActivity {    @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("启动 SingleTaskActivity");        layout.addView(tv);        layout.addView(btn);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                Intent intent = new Intent(SecondActivity.this, SingleTaskActivity.class);                startActivity(intent);            }        });    }}

0 0
原创粉丝点击