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即可启动。

    今天多一点积累,明天少一分烦恼
  • 相关阅读:
    Callback2.0
    设计模式之Composite
    设计模式之Proxy
    React Native DEMO for Android
    React Native 与 夜神模拟器的绑定
    Skipping 'Android SDK Tools, revision 24.0.2'; it depends on 'Android SDK Platform-tools, revision 20' which was not installed.
    .ui/qrc文件自动生成.py文件
    简单排序算法
    Big O
    设计模式之Adapter
  • 原文地址:https://www.cnblogs.com/galibujianbusana/p/6226693.html
Copyright © 2011-2022 走看看