1.Activity的四种模式:
运用launchMode();选择模式。
standard:标准模式。自己可调用自己的Activity。
singleTop:顶单例模式。不可以直接调用自己,通过间接的方式获取Activtity。两个一样Activity
但地址不同。
singleTask:内单例模式。不可以直接调用自己,每调用一个Activity,除掉此Activity上面的所有
Activity.
singleInstance:全局单例模式。不可以直接调用自己,调用的Activity的栈是不同,两个Activity相互
切换。
2.退出应用程序:
递归:
main.xml:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="jump"
android:text="跳B"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="exit"
android:text="退出"/>
main_activity:
public void jump(View view){
//跳转页面
Intent intent=new Intent(this,BActivity.class);
//为目的而跳转
startActivityForResult(intent,0x200);
}
public void exit(View view){
finish();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
exit(null);
}
b.xml:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="jump"
android:text="跳A"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="exit"
android:text="退出"/>
b_activity
public void jump(View view){
Intent intent=new Intent(this,MainActivity.class);
setResult(0x110,intent);
}
public void exit(View view){
finish();
}
2.application 退出应用程序
package application;
import android.app.Activity;
import android.app.Application;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2017/6/17 0017.
*/
public class Myapplication extends Application{
public List<Activity> activities=new ArrayList<>();
public void addActivity(Activity activity){
activities.add(activity);
}
public void exitActivity(){
for (Activity a : activities) {
a.finish();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.zking.app13.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/main_text"
android:text="这是A页面"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="jump"
android:text="跳B"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="jumpMe"
android:text="跳自己"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="exit"
android:text="退出"/>
</LinearLayout>
package com.zking.app13;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import application.Myapplication;
public class MainActivity extends AppCompatActivity {
private TextView textView;
private Myapplication myapplication;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.main_text);
textView.setText("当前栈"+this.getTaskId()+"\n当前Activity:"+this);
myapplication = (Myapplication) getApplication();
myapplication.addActivity(this);
}
public void jump(View view){
Intent intent=new Intent(this,BActivity.class);
startActivity(intent);
}
public void jumpMe(View view){
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent);
}
public void exit(View view){
myapplication.exitActivity();
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/b_text"
android:text="B页面"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="jump"
android:text="跳A"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="exit"
android:text="退出"/>
</LinearLayout>
package com.zking.app13;
import android.app.Application;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import application.Myapplication;
/**
* Created by Administrator on 2017/6/17 0017.
*/
public class BActivity extends AppCompatActivity{
private TextView textView;
private Myapplication myapplication;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.b);
textView = (TextView) findViewById(R.id.b_text);
textView.setText("当前栈"+this.getTaskId()+"\n当前Activity:"+this);
myapplication = (Myapplication) getApplication();
myapplication.addActivity(this);
}
public void jump(View view){
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent);
}
public void exit(View view){
myapplication.exitActivity();
}
}
//注意要配置自己的application