- 浏览: 1205367 次
- 性别:
- 来自: 荆州
文章分类
- 全部博客 (396)
- Android 基础 (72)
- Java 基础 (42)
- Android(动画效果) (26)
- Android(自定义组件) (13)
- Android(手机服务) (38)
- Android(网络相关) (27)
- Android(多媒体) (12)
- Android(小技巧) (30)
- Android(用户界面) (39)
- 基础概念 (24)
- Android组件学习 (21)
- Android数据库相关 (11)
- 生活杂谈 (10)
- 调试技巧部分 (8)
- Sql Server相关 (1)
- Android(xml相关) (2)
- Android 开发 (12)
- 韩语学习 (4)
- Mac添加环境变量的三种方法 (1)
- iPhone开发 (1)
- Android Studio (1)
最新评论
-
ppfbsar:
下载网络文件到SD卡上 -
851228082:
好文!彻底理解单类型导入与按需导入的区别了。还有一点可以通过 ...
谈java的导入(import) -
麦田的设计者:
老乡啊
sqlite 数据库保存图片 -
sf_dream:
我要是读写list、map之类的集合呢
ObjectOutputStream和ObjectInputStream类的学习 -
xfyunyun:
博主,请问webview加载html字符串时怎么进行缓存处理呢 ...
WebView使用总结2(加载HTML内容形式的String)
ActA.java文件:
ActB.java文件:
AndroidMenifest.xml文件(配置启动模式):
这个url写下供自己参考,当然大伙都可以链过去学习学习:
http://winuxxan.blog.51cto.com/2779763/504047
public class ActA extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textView = new TextView(this); /** * standard 模式: * <p> * 当使用当前代码块启动Activity时,每次都是新创建了一个Activity实例. * 因为是使用默认启动模式(标准模式),我们可以通过下面TextView文本中 hash code 来识别是否为新Activity * 此时点击back可以依次看到先前启动的Activity实例,类似栈退出操作,而启动过程类似压栈操作 * * singleTop 模式: * <p> * 运行的时候会发现,按多少遍按钮,都是相同的ActiA实例,因为该实例在栈顶,因此不会创建新的实例.如果回退,将退出应用 * singleTop模式,可用来解决栈顶多个重复相同的Activity的问题.如果是A Activity跳转到B Activity,再跳转到 * A Activity,行为就和standard一样了,会在B Activity跳转到A Activity的时候创建A * Activity的新实例,因为当时的 栈顶不是A Activity实例 * * singleTask 模式: * <p> * 当intent到来,需要创建singleTask模式Activity的时候,系统会检查栈里面是否已经有该Activity的实例 * .如果有直接将 intent发送给它. * * singleInstance模式: * <p> * 首先要说一下Task的概念.如果是Swing或者Windows程序,可能有多个窗口可以切换,但是你无法在自己程序中复用人家的窗口. * 注意是直接复用人家的二进制代码,不是你拿到人家api后的源代码级调用.Android可以做到,让别人的程序直接复用你的 * Activity(类似桌面程序的窗口).Android为提供这种机制,就引入了Task的概念. * <p> * Task可以认为是一个栈,可放入多个Activity.比如启动一个应用,那么Android就创建了一个Task, * 然后启动这个应用的入口Activity * ,就是intent-filter中配置为main和launch的那个(见一个APK文件部署产生多个应用安装 * 的效果)这个Activity是根 * (Root)Activity,可能会在它的界面调用其他Activity,这些Activity如果按照上面那三个模式 * ,也会在这个栈(Task)中,只是实例化的策略不同而已. 验证的办法是调用和打印Activity的taskId: * <p> * TextView textView2 = new TextView(this); * textView2.setText("task id: "+this.getTaskId()); * 会发现,无论切换Activity,taskId是相同的 * * 当然也可以在这个单一的Task栈中,放入别人的Activity,比如google地图,这样用户看过地图按回退键的时候, * 会退栈回到调用地图的Activity.对用户来说,并不觉得在操作多个应用.这就是Task的作用. * * 但是,有这样的需求,多个Task共享一个Activity(singleTask是在一个task中共享一个Activity) * 现成的例子是google地图.比如我有一个应用是导游方面的,其中调用的google地图Activity.那么现在我比如按home键, * 然后到应用列表中打开google地图,你会发现显示的就是刚才的地图,实际上是同一个Activity. * * 如果使用上面三种模式,是无法实现这个需求的.google地图应用中有多个上下文Activity,比如路线查询等的, * 导游应用也有一些上下文Activity.在各自应用中回退要回退到各自的上下文Activity中 * * singleInstance模式解决了这个问题(绕了这么半天才说到正题),让这个模式下的Activity单独在一个task栈中. * 这个栈只有一个Activity.导游应用和google地图应用发送的intent都由这个Activity接收和展示. * * 这里又有两个问题: * <p> * 如果是这种情况,多个task栈也可以看作一个应用.比如导游应用启动地图Activity, * 实际上是在导游应用task栈之上singleInstance模式创建的 * (如果还没有的话,如果有就是直接显示它)一个新栈,当这个栈里面的唯一Activity * ,地图Activity回退的时候,只是把这个栈移开了, * 这样就看到导游应用刚才的Activity了;多个应用(Task)共享一个Activity要求这些应用都没有退出 * ,比如刚才强调要用home键从导游应用切换到地图应用.因为,如果退出导游应用 * .而这时地图应用也并未运行的话,那个单独的地图Activity(task)也会退出了 * * 如果还是拿刚才的ActA和ActB的示例,可以把ActB的模式改为singleInstance,ActA为standard,进行一下测试 */ textView.setText("Activity id:" + this + "task Id:" + this.getTaskId()); Button button = new Button(this); button.setText("go ActB"); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(ActA.this, ActB.class); startActivity(intent); } }); LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); layout.addView(textView); layout.addView(button); this.setContentView(layout); } }
ActB.java文件:
public class ActB extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textView = new TextView(this); textView.setText("Activity id:" + this + "task Id:" + this.getTaskId()); Button button = new Button(this); button.setText("go actA"); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(ActB.this, ActA.class); startActivity(intent); } }); LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); layout.addView(textView); layout.addView(button); this.setContentView(layout); } protected void onDestory(){ super.onDestroy(); System.out.println("____B ondestory_____"); } }
AndroidMenifest.xml文件(配置启动模式):
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.model" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".ActA" android:label="@string/app_name" android:launchMode="singleTask"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".ActB" android:launchMode="singleInstance" /> </application> </manifest>
这个url写下供自己参考,当然大伙都可以链过去学习学习:
http://winuxxan.blog.51cto.com/2779763/504047
发表评论
-
输入法弹出后,不影响activity原有布局(android:windowSoftInputMode)
2012-07-08 21:03 4345在AndroidManifest.xml文件中的activit ... -
屏幕截图
2012-04-19 18:24 1250直接贴代码,不说话:) ScreenShot.java文件: ... -
Android Bitmap 圆角 倒影
2012-03-13 23:17 1498// 获得带倒影的图片方法 public Bitmap ... -
View进行透明度设置
2012-03-08 23:12 1705对特定View进行透明度设置的代码片段: public v ... -
动态设置GridView宽,高
2012-03-07 14:24 2271这里假设实例Id为mGrid: RelativeLayo ... -
ActivityGroup使用方法
2012-02-15 17:34 7079这个例子是在http://www.anddev.org上看到的 ... -
Android进度条总结
2011-04-08 10:27 15771.在标题栏显示进度条: requestWindowFea ... -
TextView实现多行本文滚动
2011-04-07 21:49 1691Android中我们为了实现文本的滚动可以在ScrollVie ... -
Android 给应用定制皮肤
2011-04-07 21:29 3146在实现程序功能的同时,如果能让程序界面更加美观,有锦上添花之妙 ... -
自定义无标题Dialog
2011-03-18 13:39 22391.主Activity: public class D ... -
手机分辨率和密度的理解
2011-01-24 10:22 2449QVGA,WQVGA屏density=120 HVGA屏den ... -
Android Bitmap 圆角
2011-01-20 10:16 1694第一种是生成圆角背景: Button mView = (B ... -
Dialog自定义方法1
2011-01-13 14:51 1355public class SelfDialog { D ... -
UI方面的一些知识点总结
2010-09-17 16:52 14711.如何获取手机屏幕的分辨率: /* 取得屏幕解析像 ... -
Android中画图总结(2)
2010-09-17 15:41 18471.如何显示一张自定义位图: step 1:先定义一张位图 ... -
Android中画图总结(1)
2010-09-17 15:32 14671.如何获取 res 中的资源 ... -
TextView中style的应用
2010-09-10 14:09 1217<TextView android:layout_w ... -
显示带图片的Toast提示
2010-09-09 14:22 2007ImageView mView01 = new Image ... -
color.xml中各种颜色值整理
2010-09-05 22:07 2380<color name="solid_bl ... -
Dialog属性的Activity使用
2010-09-02 06:09 15861.很简单的一个方式就可以实现用一个activity显示一个布 ...
相关推荐
Activity生命周期 启动模式实例
包含Activity启动模式的实例,四种模式都有了,代码比较简单
在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用...
该实例包含Activity启动模式的所有情况,非常全
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。 本文档讲解Android中Activity的启动模式
本节课程内容:Activity启动模式与跳转 Android中采用任务栈的形式来管Activity。栈是一种“先进后出”的数据结构。 Android中的任务栈 Task Stack in Android Activity的启动模式 Activity startup mode Activity...
activity的四种加载模式:<!-- 不写的话也默认是standard --> <!-- standard表示每执行一次startactivity就新建一个实例 singleTop表示每次执行startactivity时,如果当前activity在taskstack的顶端,则不...
android开发中activity不同启动模式的学习,通过不同的activity启动,会在activity中显示task ID 和Android 实例,方便学习activity的启动模式。
反射获取顶层activity实例
Android的Activity一共有4中启动模式分别是:standard、singleTop、singleTask、singleInstance。资源是该例子的项目,直接导入项目即可。
android Activity实例演示Activity 的lifecycle,及一个Activity如何启动另一个Activity
2.singleTop如果在任务的栈顶正好存在该Activity的实例,就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例)。3.singleTask如果在栈中已经有该Activity的...
本文实例讲述了Android Activity启动模式之singleTop。分享给大家供大家参考,具体如下: 在前面文章《Android Activity启动模式之standard实例详解》中,我们介绍了活动的默认启动模式standard,本文继续介绍...
写了一篇关于Activity启动模式的文章,这是示例代码
当启动一个activity的时候他将进入返回栈的栈顶。系统不会管栈内是否有相同的activity,方式像后入先出。 singleTop方式是在活动启动的时候,系统先判定栈顶是否有相同的活动,如果没有则新建活动,否则将不新建...
本文实例分析了Android Activity启动模式之singleTask。分享给大家供大家参考,具体如下: 前面的文章介绍了Android 活动Activity的启动模式:standard 和singleTop 。本文继续介绍Activity的下一个启动模式:...
主要介绍了Activity配置、启动和关闭activity实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下
activity动态加载fragment实例
Android activity intent 相关代码实例:activity的跳转 1.不带返回值的跳转 2.带返回值的跳转 intent的简单介绍。 Bundle的简单介绍。