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. 修改/etc/hosts 云服务器 没有做外网转内网的优化

    [root@a mapReduceLog]# scp /data/visitlog/* root@d:/data/mapReduceVisitorLog/a/root@d's password:vis ...

  2. 微信公众号 openId 支付 php中file_get_contents与curl性能比较分析

    w http://www.jb51.net/article/57238.htm

  3. mysql 建立表之间关系 一对一 练习1

    创建db5数据库 create database db5 charset=utf8; use db5; 例一:一个用户只有一个博客 用户表: id name 1 mike 2 alex 3 jack ...

  4. position学习终结者(二)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/wangshuxuncom/article/details/30982863         在博客& ...

  5. html当前文档的状态

    <script type="text/javascript"> document.onreadystatechange = loadingChange;//当页面加载状 ...

  6. pandas(八)重塑和轴向旋转

    重塑层次化索引 层次化索引为DataFrame的重排提供了良好的一致性操作,主要方法有 stack :将数据的列旋转为行 unstack:将数据的行转换为列 用一个dataframe对象举例 In [ ...

  7. 吴超老师课程--HBASE的查询手机项目

    查询1.按RowKey查询2.按手机号码查询3.按手机号码的区域查询 //查询手机13450456688的所有上网记录 public static void scan(String tableName ...

  8. go——流程控制

    Go在流程控制方面的特点如下: 没有do和while循环,只有一个更广义的for语句. switch语句灵活多变,还可以用于类型判断. if语句和switch语句都可以包含一条初始化子语句. brea ...

  9. T25健身视频全集+课表

    http://jianfei.39.net/thread-3639251-1.html T25健身视频全集+课表 强度适中 不伤膝盖! [复制链接]     zytttt         主题 好友 ...

  10. IE调试页面总结

    随着IE版本的升级,IE变的越来越强大,随之带来的问题也是越来越明显,如:如何调试在低版本的浏览器中 的情况 IE9的方法: 出于未知需求,用户在安装了较高版本IE浏览器(IE9)之后,又需要使用低版 ...