赞
踩
第一种:standard模式
Activity的默认启动模式,每当启动一个新的Activity,它就会进入任务栈,并且处于栈顶的位置,处于这种模式下,系统不会判断该Activity在栈中是否存在,每次启动都会创建一个新的实例。
适用于绝大多数的应用场景。
在java下建立FirstActivity、SecondActivity
public class FirstActivity extends AppCompatActivity{
private Button btnClick;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
Log.d=("FirstActivity",this.toString());
btnClick= (Button) findViewById(R.id.btnClick);
btnClick.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v){
Inter intent=new Intent(FirstActivity.this,FirstActivity.class);
startActivity(intent);}
}
}
}
activity_first.xml
<Button
android:text="toFirst"
android:drawableLeft="@mipmap/ic_launcher"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnClick"/> //跳转按钮
第二种:singtop模式
当启动的Activity已经位于栈顶时,直接使用;如果没有位于栈顶,则创建一个新的实例位于栈顶。
在manifests AndroidManifest.xml 下修改
<activity android:name=".FirstActivity" android:launchMode="singleTop">
</activity>
<activity android:name=".SecondActivity"></activity>
第三种:singleTask
系统首先会检查中是否存在该Activity的实例,如果发现已经存在则直接使用该实例,并将当前Activity之上的所有Activity出栈,如果没有发现则创建一个新的实例。
在manifests AndroidManifest.xml 下修改
<activity android:name=".FirstActivity" android:launchMode="singleTask">
</activity>
<activity android:name=".SecondActivity"></activity>
修改FirstActivity
protected void onRestart(){
super.onRestart();
Log.d("FirstActivity","onRestart()");
修改SecondActivity
protected void onDestroy(){
super.onDestroy();
Log.d("SecondActivity
","onDestroy()");
第四种:singleInstance模式
只会创建一个Actiity实例
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。