zoukankan      html  css  js  c++  java
  • intent和intentfilter

    intent 和intent Filters


    startActivity()的机制

    用到了IBinder ipc 用到了进程间通讯机制

    activity有四种LaunchMode

    当startActivity()的时候不知道启动的是不是和自己的activity在一个

    进程中。所以要用 IPC 进程间通讯来调用


    简单的使用方法 

    1

    A.class中

    1
    2
    3
    Intent intent = new Intent(A.this, B.class);
    intent.putExtra("sundy.demo""你好");
    startActivity(intent);

            B.class中

            

    1
    2
    3
    Intent intent = this.getIntent();
    String value = intent.getExtras().getString("key");
    Toast.makeText(this, value, 1).show();

    2

        A.class中

    1
    2
    3
    4
    Intent intent = new Intent();
    intent.putExtra("key""123");
    intent.setAction("com.wang.cn");
    startActivity(intent);

        B。

    class中

    .

    1
    2
    3
    Intent intent = this.getIntent();
    String value = intent.getExtras().getString("key");
    Toast.makeText(this, value, 1).show();

                要在mainfest中设置B。clas的activity中的intent-filter的action中设置

    1
    2
    3
    4
    5
    6
    7
    <activity android:name=".B" >
                <intent-filter>
                    <action android:name="com.wang.cn" />
     
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>


    必须写上 <category android:name="android.intent.category.DEFAULT" />这一句不然会报错。。

    3. 简单的打电话 代码

    1
    2
    3
    4
    5
    Intent intent = new Intent();
     
    intent.setAction(Intent.ACTION_DIAL);
    intent.setData(Uri.parse("tel:12345645555"));
    startActivity(intent);

        setAction和setData都是系統定義好 。這裡仅仅說下使用方法

    4.获取data中的值

        A。class中

    1
    2
    3
    4
    Intent intent = new Intent();
    intent.setAction("com.wang.cn");
    intent.setData(Uri.parse("tel:12345645555"));
    startActivity(intent);

        B。class中

    1
    2
    3
    4
    Intent intent = this.getIntent();
     
    String uri = intent.getDataString();
    Toast.makeText(this, uri, 1).show();

     setAction和setData都是系統定義好 。這裡仅仅說下使用方法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <activity android:name=".Rose" >
                <intent-filter>
                    <action android:name="com.wang.cn" />
     
                    <category android:name="android.intent.cat  egory.DEFAULT" />
     
                    <data android:scheme="tel" >
                    </data>
                </intent-filter>
            </activity>

    5.startActivityForResult 方法

        A。

    class中

    1
    2
    3
    Intent intent = new Intent();
    intent.setClass(A.this,B.class);
    startActivityForResult(intent, 123);

            

        在A。

    clas的activity中 导入系统的onActivityResult方法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            // TODO Auto-generated method stub
            super.onActivityResult(requestCode, resultCode, data);
            if (resultCode == 321) {
                String value = data.getExtras().getString("name");
                Toast.makeText(this, value, 1).show();
            }
        }

        


    B.class中


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    button.setOnClickListener(new OnClickListener() {
     
                @Override
                public void onClick(View arg0) {
     
                    Intent intent =this.getIntent();
                    intent.putExtra("name""111111111");
                    setResult(321, intent);
                    finish();
                }
            });


    当resultCode一样的时候 回传值成功。。

    6.intent 传递 对象 类  等等


  • 相关阅读:
    【AS3代码】滚动的小球
    【AS3代码】颜色拾取器
    【AS3代码】添加/删除XML子元素及属性
    【AS3代码】音乐波纹
    【AS3代码】访问/修改XML子元素和属性
    【AS3代码】擦窗户效果(也就是流行的妄撮游戏)
    【AS3代码】动态时钟
    【AS3代码】加载XML数据
    【AS3代码】正则表达式的各种用法和小实例
    【AS3代码】九宫格小游戏
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5209278.html
Copyright © 2011-2022 走看看