activity启动模式之singleInstance
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的更多相关文章
- 深入Activity,Activity启动模式LaunchMode完全解析
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53221384本文出自[DylanAndroid的博客] 在平时的开发中,我们可 ...
- Activity启动模式 及 Intent Flags 与 栈 的关联分析
http://blog.csdn.net/vipzjyno1/article/details/25463457 Android启动模式Flags栈Task 目录(?)[+] 什么是栈 栈 ...
- 【转】Activity启动模式 及 Intent Flags 与 栈 的关联分析
http://blog.csdn.net/vipzjyno1/article/details/25463457 在学习Android的过程中,Intent是我们最常用Android用于进程内或进 ...
- Android中Activity启动模式详解
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. An ...
- Android-3 Activity启动模式
Activity启动模式 android:launchMode="singleTask" * Standard 每次都创建一个新实例 -- TaskID不变,ActivityID改 ...
- Android Activity 启动模式详解
最近有群里的朋友问我 Activity的四种启动模式分别是什么意思? 当初因为项目比较忙,草草的解释了下, Api文档中说的也只是一般,在这里就小记一下吧,以便有更多的朋友对Activity启动模式了 ...
- Activity 启动模式 FLAG
原文:https://blog.csdn.net/youhongyan/article/details/64151922 一.Activity启动模式的设置在AndroidManifest.xml文件 ...
- 【转】Android总结篇系列:Activity启动模式(lauchMode)
[转]Android总结篇系列:Activity启动模式(lauchMode) 本来想针对Activity中的启动模式写篇文章的,后来网上发现有人已经总结的相当好了,在此直接引用过来,并加上自己的一些 ...
- Android启动模式之singleinstance的坑
前言 在实际应用中,使用singleinstance启动模式时,会遇到一些奇奇怪怪的问题.Android有四种启动模式,分别是standard,singleTop,singleTask,singleI ...
随机推荐
- mysql insert中用case
insert into urls(company,counterType,mdUrl,tradeUrl) values('test', CASE 'test'WHEN 'CTP' THEN 1WHEN ...
- Storm-源码分析-acker (backtype.storm.daemon.acker)
backtype.storm.daemon.acker 设计的巧妙在于, 不用分别记录和track, stream过程中所有的tuple, 而只需要track root tuple, 而所有中间过程都 ...
- Java中native关键字使用
native是与C++异构开发的时候用的.java自己开发不会使用
- django博客项目1.环境搭建
安装 Python Windows 下安装 Python 非常简单,去 Python 官方网站找到 Python 3 的下载地址,根据你的系统选择 32 位或者 64 位的安装包,下载好后双击安装即可 ...
- Andrew Ng机器学习编程作业:Logistic Regression
编程作业文件: machine-learning-ex2 1. Logistic Regression (逻辑回归) 有之前学生的数据,建立逻辑回归模型预测,根据两次考试结果预测一个学生是否有资格被大 ...
- Ionic 3 项目的工程目录结构(转载)
工程目录结构说明如下图
- beego——模板函数
beego 支持用户定义模板函数,但是必须在 beego.Run() 调用之前,设置如下: func hello(in string)(out string){ out = in + "wo ...
- go——结构体(二)
Go语言是一种静态类型的编程语言.这意味着,编译器需要在编译时知晓程序里每个值的类型. 如果提前知道类型信息,编译器就可以确保程序合理的使用值. 这有助于减少潜在的内存异常和bug,并且使编译器有机会 ...
- Node.js API学习笔记(二)
本文发表于本人博客. 上一节笔记说到创建Buffer实例,这节继续讲Buffer.本节讲解下Buffer的一些静态方法.写入以及读取方法. Buffer.isEncoding(编码)判断nodejs是 ...
- ReportView 添加自动增长序号
在显示序号的列中输入相关的值: 在此表达式的后面是Nothing,不是null,不要搞错.