Activity的LaunchMode和退出应用程序
来源:互联网 发布:漂亮的av女演员知乎 编辑:程序博客网 时间:2024/04/29 13:00
1.Activity的启动模式
<1>Standard(默认-标准模式)
自己可以启动自己(会创新一个新的Activity)
<2>SingleTop(顶单例模式)
在栈顶只允许有一个相同的Activity
自己不能启动自己
<3>SingleTask(内单例模式)
如果要启动的Activity存在,则干掉要启动的Activity上面的所有的Activity
<1>Standard(默认-标准模式)
自己可以启动自己(会创新一个新的Activity)
<2>SingleTop(顶单例模式)
在栈顶只允许有一个相同的Activity
自己不能启动自己
<3>SingleTask(内单例模式)
如果要启动的Activity存在,则干掉要启动的Activity上面的所有的Activity
<4>SingleInstance(全局单例模式)
2.退出应用程序
<1>递归退出
<2>栈退出
Application:多个组件之间数据共享(全局)
因为页面太多就不放效果图了
<?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:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.zking.administrator.app6.MainActivity"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#66ffff00" android:text="这是MainActivity" android:textSize="30sp"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tv_main_text"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="跳自己" android:onClick="jumpMain"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="跳B" android:onClick="jumpB"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="退出应用程序" android:onClick="exit"/></LinearLayout>
<?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.administrator.app6.BActivity"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#66ff00ff" android:text="这是BActivity" android:textSize="30sp"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tv_b_text"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="跳MMain" android:onClick="jumpMain"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="退出应用程序" android:onClick="exit"/></LinearLayout>
package com.zking.administrator.app6;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.TextView;import com.zking.application.MyApplication;public class MainActivity extends AppCompatActivity { private TextView tv_main_text; private MyApplication myApplication; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv_main_text = (TextView) findViewById(R.id.tv_main_text); //this打印当前地址 this.getTaskId()拿当前Activity所占任务的ID //如果你第一个或第二个ID不一样的话就代表有俩个栈,一样的话就代表一个栈 tv_main_text.setText("当前Activity实例(在内存里的地址):"+this+"\n当前任务栈"+this.getTaskId()); //获取MyApplication myApplication = (MyApplication) getApplication(); myApplication.add(this); } public void jumpMain(View view){ //自己跳自己 Intent intent=new Intent(this,MainActivity.class); //启动(栈用普通的方式启动) startActivity(intent); //递归的退出方式用startActivityForResult启动 //startActivityForResult(intent,0x101); } public void jumpB(View view){ //跳B页面 Intent intent=new Intent(this,BActivity.class); startActivity(intent); } //递归的退出方式 public void exit(View view){ //finish();//退出当前的Activity //finish会调用onDestroy //System.exit(0);//退出当前Activity //system不会用onDestroy //用myApplication退出 myApplication.exit(); }// @Override// protected void onActivityResult(int requestCode, int resultCode, Intent data) {// super.onActivityResult(requestCode, resultCode, data);// exit(null);// } @Override protected void onDestroy() { super.onDestroy(); Log.i("text","onDestroy"); }}
package com.zking.administrator.app6;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.TextView;import com.zking.application.MyApplication;public class BActivity extends AppCompatActivity { private MyApplication myApplication; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_b); TextView tv_b_text= (TextView) findViewById(R.id.tv_b_text); tv_b_text.setText("当前Activity地址:"+this+"\nTastId:"+this.getTaskId()); //获取MyApplication myApplication = (MyApplication) getApplication(); myApplication.add(this); } public void jumpMain(View view){ //跳Main页面 Intent intent=new Intent(this,MainActivity.class); startActivity(intent); } //退出 public void exit(View view){ //finish();//退出当前的Activity //System.exit(0);//退出当前Activity //用myApplication退出 myApplication.exit(); }}
用栈退出要写一个自定义的MyApplicationpackage com.zking.application;import android.app.Activity;import android.app.Application;import java.util.ArrayList;import java.util.List;/** * Created by Administrator on 2017/6/17. */public class MyApplication extends Application{ //定义一个对象集合 private List<Activity> activities=new ArrayList<>(); //写一个方法给集合加值 public void add(Activity activity){ activities.add(activity); } //写一个退出的方法 public void exit(){ //遍历activities for (Activity activity : activities) { //调用每一个activity的finish activity.finish(); } }}
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zking.administrator.app6"> //在这里给application换一个名字,就是我们自定义的MyApplication <application android:name="com.zking.application.MyApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".BActivity"></activity> </application></manifest>
阅读全文
0 0
- Activity的LaunchMode和退出应用程序
- Android-Activity的LaunchMode和退出应用程序
- Activity的LaunchMode和退出应用程序
- Activity的LaunchMode和退出应用程序
- Android 应用程序退出和Activity的管理
- Activity的退出应用程序
- Activity的LaunchMode和taskAffinity
- Activity的LaunchMode和taskAffinity
- Activity的LaunchMode和taskAffinity
- Activity的LaunchMode和taskAffinity
- Activity的LaunchMode和taskAffinity
- Activity的LaunchMode和taskAffinity
- Activity的LaunchMode和taskAffinity
- Activity的LaunchMode和taskAffinity
- Activity的LaunchMode和taskAffinity
- Activity的LaunchMode和taskAffinity
- Activity的 LaunchMode和Flags
- Activity的LaunchMode和taskAffinity
- XGBoost-Python完全调参指南-参数解释篇
- hdoj 2022
- 服务器虚拟化
- 浏览器打开zabbix页面报Error connecting to database: Access denied for user 'zabbix' @ 'localhost' to databas
- hdoj 2023
- Activity的LaunchMode和退出应用程序
- sql防止注入的简单实现
- JS日期格式字符串转换为日期毫秒数和时间毫秒数转换为日期
- 全键盘Vimium快捷键学习记录
- 24. 编写函数:将输入的任意三个字符串合并,按顺序合并为一个新的字符串。
- hdoj 2024
- HTTP协议
- Python基础数据结构(list, str, tuple, dict)
- hdoj 2025