SingleTop
在Android中Activity的启动模式基础上
在AndroidManifest.xml中
改为android:launchMode="SingleTop"
运行,TaskID没有改变,实例i发生了改变
在java中创建一个activity为BAty.java(Blank)
在content_baty.xml中添加
<TextView
android:id="@+id/tv"
android:text="Hello World!"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
此处id为tv,同一个文件里的id必须不同,不同文件的id可以不同
在BAty.java中
tv= (TextView) findViewById(R.id.tv);
tv.setText(String.format("TaskID:%d\nCurren Activity id:%s", getTaskId(), toString()));
在content_main.xml中修改和重构android:id="@+id/btnMainAty" />
<Button
android:text="启动MainActivity"
android:id="@+id/btnMainAty" />
<Button
android:text="启动BAty"
android:id="@+id/btnSatrtBAty" />
在MainActivity.java中添加
findViewById(R.id.btnSatrtBAty).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,BAty.class));
}
});
把content_main.xml的内容全部复制到content_baty.xml
把MainActivity.java中的
findViewById(R.id.btnMainAty).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, MainActivity.class));
}
});
findViewById(R.id.btnSatrtBAty).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,BAty.class));
}
});
复制BAty.java中,有提示,确定即可
把MainActivity改为BAty
运行
启动MainActivity,只要是SingTask,TaskID没有变化,
启动BAty,实例id发生变化 后退一下,实例id发生变化
启动BAty,实例id发生变化
再启动MainActivityM,实例id发生变化
在同一个任务栈里,指定启动模式是SingleTop,
如果activity处于栈点,只能创建一个实例, 如果不处于当前栈点,将会创建一个新的实例
标签:安卓开发