activity启动模式之singleInstance

一、简介

Log.d("C2", getTaskId()+"");里面的getTaskId()可以获取activity栈的编号

二、代码实例

结果图:

代码:

activity.C1

 package activity;

 import com.example.activityLaunchSingleInstance.R;

 import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class C1 extends Activity implements OnClickListener{
private Button btn_c1;//创建一个button对象
private Button btn_c2;//创建一个button对象
private Button btn_c3;//创建一个button对象
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//父类操作
setContentView(R.layout.activity_main);//引入名为activity_main的界面
Log.d("C1", getTaskId()+"");
setTitle("我是C1");
btn_c1=(Button) findViewById(R.id.btn_c1);//找id为btn_openActivity的button
btn_c2=(Button) findViewById(R.id.btn_c2);//找id为btn_openActivity的button
btn_c3=(Button) findViewById(R.id.btn_c3);//找id为btn_openActivity的button
btn_c1.setOnClickListener(this);
btn_c2.setOnClickListener(this);
btn_c3.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btn_c1:
Intent intent=new Intent();
intent.setClass(C1.this, C1.class);
startActivity(intent);
break;
case R.id.btn_c2:
Intent intent2=new Intent();
intent2.setClass(C1.this, C2.class);
startActivity(intent2);
break;
case R.id.btn_c3:
Intent intent3=new Intent();
intent3.setClass(C1.this, C3.class);
startActivity(intent3);
break;
default:
break;
}
}
}

activity.C2

 package activity;

 import com.example.activityLaunchSingleInstance.R;

 import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast; public class C2 extends Activity implements OnClickListener{
private Button btn_c1;//创建一个button对象
private Button btn_c2;//创建一个button对象
private Button btn_c3;//创建一个button对象
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//父类操作
setContentView(R.layout.activity_main);//引入名为activity_main的界面
Log.d("C2", getTaskId()+"");
setTitle("我是C2");
btn_c1=(Button) findViewById(R.id.btn_c1);//找id为btn_openActivity的button
btn_c2=(Button) findViewById(R.id.btn_c2);//找id为btn_openActivity的button
btn_c3=(Button) findViewById(R.id.btn_c3);//找id为btn_openActivity的button
btn_c1.setOnClickListener(this);
btn_c2.setOnClickListener(this);
btn_c3.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btn_c1:
Intent intent=new Intent();
intent.setClass(C2.this, C1.class);
startActivity(intent);
break;
case R.id.btn_c2:
Intent intent2=new Intent();
intent2.setClass(C2.this, C2.class);
startActivity(intent2);
break;
case R.id.btn_c3:
Intent intent3=new Intent();
intent3.setClass(C2.this, C3.class);
startActivity(intent3);
break;
default:
break;
}
} @Override
protected void onNewIntent(Intent intent) {
// TODO Auto-generated method stub
super.onNewIntent(intent);
Toast.makeText(this, "onNewIntent", Toast.LENGTH_SHORT).show();
Log.d("C2", "onNewIntent");
}
}

activity.C3

 package activity;

 import com.example.activityLaunchSingleInstance.R;

 import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class C3 extends Activity implements OnClickListener{
private Button btn_c1;//创建一个button对象
private Button btn_c2;//创建一个button对象
private Button btn_c3;//创建一个button对象
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//父类操作
setContentView(R.layout.activity_main);//引入名为activity_main的界面
Log.d("C3", getTaskId()+"");
setTitle("我是C3");
btn_c1=(Button) findViewById(R.id.btn_c1);//找id为btn_openActivity的button
btn_c2=(Button) findViewById(R.id.btn_c2);//找id为btn_openActivity的button
btn_c3=(Button) findViewById(R.id.btn_c3);//找id为btn_openActivity的button
btn_c1.setOnClickListener(this);
btn_c2.setOnClickListener(this);
btn_c3.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btn_c1:
Intent intent=new Intent();
intent.setClass(C3.this, C1.class);
startActivity(intent);
break;
case R.id.btn_c2:
Intent intent2=new Intent();
intent2.setClass(C3.this, C2.class);
startActivity(intent2);
break;
case R.id.btn_c3:
Intent intent3=new Intent();
intent3.setClass(C3.this, C3.class);
startActivity(intent3);
break;
default:
break;
}
}
}

/activityLaunchSingleInstance/AndroidManifest.xml

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.activityLaunchSingleInstance"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" /> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="activity.C1"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="activity.C2" android:launchMode="singleInstance">
<intent-filter>
<action android:name="com.example.activityLaunchSingleTask" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name="activity.C3"></activity>
</application> </manifest>

activity启动模式之singleInstance的更多相关文章

  1. 深入Activity,Activity启动模式LaunchMode完全解析

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53221384本文出自[DylanAndroid的博客] 在平时的开发中,我们可 ...

  2. Activity启动模式 及 Intent Flags 与 栈 的关联分析

     http://blog.csdn.net/vipzjyno1/article/details/25463457    Android启动模式Flags栈Task   目录(?)[+] 什么是栈 栈 ...

  3. 【转】Activity启动模式 及 Intent Flags 与 栈 的关联分析

    http://blog.csdn.net/vipzjyno1/article/details/25463457    在学习Android的过程中,Intent是我们最常用Android用于进程内或进 ...

  4. Android中Activity启动模式详解

    在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. An ...

  5. Android-3 Activity启动模式

    Activity启动模式 android:launchMode="singleTask" * Standard 每次都创建一个新实例 -- TaskID不变,ActivityID改 ...

  6. Android Activity 启动模式详解

    最近有群里的朋友问我 Activity的四种启动模式分别是什么意思? 当初因为项目比较忙,草草的解释了下, Api文档中说的也只是一般,在这里就小记一下吧,以便有更多的朋友对Activity启动模式了 ...

  7. Activity 启动模式 FLAG

    原文:https://blog.csdn.net/youhongyan/article/details/64151922 一.Activity启动模式的设置在AndroidManifest.xml文件 ...

  8. 【转】Android总结篇系列:Activity启动模式(lauchMode)

    [转]Android总结篇系列:Activity启动模式(lauchMode) 本来想针对Activity中的启动模式写篇文章的,后来网上发现有人已经总结的相当好了,在此直接引用过来,并加上自己的一些 ...

  9. Android启动模式之singleinstance的坑

    前言 在实际应用中,使用singleinstance启动模式时,会遇到一些奇奇怪怪的问题.Android有四种启动模式,分别是standard,singleTop,singleTask,singleI ...

随机推荐

  1. Centos7 下Boost 1.61.0源码 配置开发环境

    1 下载地址 https://sourceforge.net/projects/boost/files/boost/1.61.0/ boost_1_61_0.tar.gz 2 卸载系统自带的boost ...

  2. PHP中Trait详解及其应用

    w PHP中Trait详解及其应用 - 开发者日常 - SegmentFaulthttps://segmentfault.com/a/1190000008009455

  3. Python菜鸟之路:Django ModelForm的使用

    一.简单使用案例 #views.py #views.py from django.shortcuts import render,HttpResponse from app01 import mode ...

  4. Spring 框架整合Struts2 框架和 Hibernate 框架

    1. Spring 框架整合 Struts2 框架 // [第一种整合方式(不推荐)](http://www.cnblogs.com/linkworld/p/7718274.html) // 从 Se ...

  5. Eclipse 介绍

    设置背景的插件: Darkest Dark Theme 添加 properties 插件: Properties Editor Git 插件: Egit 常用快捷键 command + 1 : 代码提 ...

  6. elasticsearch数据迁移——elasticsearch-dump使用

    先安装好nodejs和nodejs的包管理工具npm.然后安装elasticsearch-dump: npm install elasticdump 下面迁移数据: 先在目的地址创建一个index来储 ...

  7. Pandas常用操作方法

    Pandas pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的. Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具. pandas提 ...

  8. Linux网络调试工具资料链接

    Dropbox: https://huoding.com/2016/12/15/574 Tcpdump: http://roclinux.cn/?p=2474

  9. 流畅的python 字典和集合

    介绍 dict 类型不但在各种程序里广泛使用,它也是 Python 语言的基石.模块的命名空间.实例的属性和函数的关键字参数中都可以看到字典的身影.跟它有关的内置函数都在 __builtins__._ ...

  10. Python基础教程-List和Tuple

    List Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如: >>> classmates = ['Michael',' ...