zoukankan      html  css  js  c++  java
  • Intent

    1.http://blog.csdn.net/daogepiqian/article/details/50606474

    2.http://blog.csdn.net/wulianghuan/article/details/8508848

    3.Activity中的action和category可以都相同,这样启动intent时如下

    4.部分代码如下:

     <activity android:name=".Second_Activity">
                <intent-filter>
                    <action android:name="com.android.activity.MY_ACTION" />
    
                    <category android:name="android.intent.category.my" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
            <activity android:name=".Third_Activity">
                <intent-filter>
                    <action android:name="com.android.activity.MY_ACTION" />
    
                    <category android:name="android.intent.category.my" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
    

      

    text1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent it = new Intent();
                    it.setAction("com.android.activity.MY_ACTION");
                    it.addCategory("android.intent.category.my");
                    startActivity(it);
    
                }
            });
    

      

     5.Intent调用另外一个app的界面

    <1>

     Intent it=new Intent();
            /**
             * 参数:
             * 包名
             * 包名+Activity名称
             * */
            it.setClassName("com.example.customview05imageview", "com.example.customview05imageview.MainActivity");
            startActivity(it);
    

      

     <2>

     try{
                Intent intent = new Intent();
                intent.setAction("android.intent.action.MAIN");
                intent.addCategory("com.tupian");
                startActivity(intent);
                 }
                catch (Exception e)
                {
                    Toast.makeText(this,"请先安装该app",Toast.LENGTH_SHORT).show();
       
                 }
    

      

     <category 必须加上Default,否则找不到该Acitivity>

     <activity android:name=".Main2Activity">
                <intent-filter>
                    <action android:name="android.intent.action.myMainActivity2"/>
                    <category android:name="com.tupian2" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
    

      

    6. 效果图:

    不同的app,activity,只要action相同。那么通过隐式intent就可以打开app的特定Activity。

     

    7.小结:

    一个Activity可以有多个action,也能有多个category。 使用隐式Intent,如果使用了addcategory(),那样activity的配置中除去添加的category,必须要加上category的default值,否则找不到该activity。

     

    当intent使用setaction时,如果多个activity的action相同,则会同时启动调用。

     

    如下代码:则可以启动activity2,activity3的

            Intent intent = new Intent("eee") ;  // eee 为action
            startActivity(intent);
    

      

         //  如果加上category则需要action和category都相同才能启动
         Intent intent = new Intent("eee") ;
            intent.addCategory("cate");
            startActivity(intent);   
    

      

      <activity android:name=".Main2Activity">
                <intent-filter>
                    <action android:name="android.intent.action.SEND" />
                    <action android:name="android.intent.action.SENDTO" />
    
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
                <intent-filter>
                    <action android:name="eee" />
                    <action android:name="ss" />
    
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
    
    
            <activity android:name=".Main3Activity">
                <intent-filter>
                    <action android:name="android.intent.action.SEND" />
                    <action android:name="eee" />
                    <action android:name="android.intent.action.SENDTO" />
                    <category android:name="cate" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
    

      

     一个activity中可以配置多个<intent-filter>,只需要与其中一个相同,activity即可启动。

    今天多一点积累,明天少一分烦恼
  • 相关阅读:
    pywin32解析office文档
    解决NGUI自动被设置LYAER
    ngui的tween的tweenFactor属性
    ngui中 代码调用按钮事件(后来改成了按钮绑定键盘..)
    unity调用摄像头的方法
    坐标转换,这次是反过来,屏幕坐标转换成世界坐标
    unity5.3 安卓广告插件打包出错的理解
    从世界坐标转换成ui的rect坐标的方法
    关于unity碰撞检测器的用法
    测试第一篇标题
  • 原文地址:https://www.cnblogs.com/galibujianbusana/p/6226693.html
Copyright © 2011-2022 走看看