Activity的四种加载模式(6)

来源:未知 责任编辑:责任编辑 发表时间:2014-02-18 03:21 点击:

    我们下面来研究一下当singleTask的Activity被其他应用调用时的情况。
    为了使Activity1能够被其他应用程序调用,我们在AndroidManifest.xml中加入action,如下:
 
 
Java代码
<activity android:name=".Activity1"  
          android:launchMode="singleTask"  
          android:label="@string/app_name">  
    <intent-filter>  
        <action android:name="com.winuxxan.singleTask" />  
        <category android:name="android.intent.category.DEFAULT" />  
    </intent-filter>  
</activity>  
 
 
然后我们另外创建一个工程,创建一个Activity在初始化的时候启动Activity1,代码如下:
Java代码
public class MyActivity extends Activity {   
   @Override  
   public void onCreate(Bundle savedInstanceState) {   
       super.onCreate(savedInstanceState);   
       setContentView(R.layout.main);   
       Log.e("MyActivity", "TaskId=" + getTaskId());   
       Intent intent = new Intent("com.winuxxan.singleTask");   
       startActivity(intent);   
   }   
  
 
 
我们的操作方法是,MyActivity->Activity1->Activity2->Activity1,之后我们按Home键,然后再从Home重新进入MyActivity所在的应用。
    首先看MyActivity->Activity1这个过程,我们查看Log信息如下:
    03-01 15:04:25.784: ERROR/MyActivity(429): TaskId=9
    03-01 15:04:26.244: ERROR/Activity1(401): Activity1 onCreate! HashCode=1156107632 TaskId=10
    从这个Log信息我们可以看出:当某个应用调用其他应用里声明的singleTask模式的Activity时,它会重新创建一个Task,然后将该Activity实例化并压入堆栈。
    接着我们看Activity1和Activity2的相互切换,log信息如下:
    03-01 15:04:47.524: ERROR/Activity2(401): Activity2 onCreated! HashCode=1156128104 TaskId=10
    03-01 15:04:50.674: ERROR/Activity1(401): Activity1 onNewIntent! HashCode=1156107632 TaskId=10
    03-01 15:04:50.994: ERROR/Activity2(401): Activity2 onDestroy! HashCode=1156128104 TaskId=10
    和我们所期望的那样,如果Activity发现已经存在时,会销毁其上的Activity,然后调用onNewIntent。
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Android 完全退出程序
  • 原创:Android应用开发-Andorid歌词秀,含源码
  • android 屏幕保护
  • Android手机软件汉化教程---第四课 dex文件汉化
  • 众多Android 开源项目推荐,给力工作给力学习
  • Android Audio代码分析4
  • Android得到已安装的应用程序信息!
  • Android开发者指南(29) —— USB Host and Accessory
  • Android成长的幕后推手:工程师鲁宾
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1