Activity的模式,退出应用程序

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值