zoukankan      html  css  js  c++  java
  • intent大致使用

    intent是同一个或不同组件之间传递消息媒介。主要包括action和data:例如,ACTION_DEAL content://contacts/people/1 显示拨号界面,并填充标识为1的人的信息;

    ACTION_VIEW tel:123 显示拨号电话界面,并填充给定的号码(123);其他的次要部分如 category(类别)、type(数据类型)、component(组件)、extras(附加信息)、flag(如何启动目标activity)。

    关键代码如下

    1  public void onCreate(Bundle savedInstanceState) {
    2         super.onCreate(savedInstanceState);
    3         setContentView(R.layout.main);
    4             Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("content://contacts/people/1"));
    5         startActivity(intent);
    6     }
    7     

    其中uri是通用资源标志符,Uri代表要操作的数据,Android上可用的每种资源 - 图像、视频片段等都可以用Uri来表示。

    Android平台而言,URI主要分三个部分:scheme、authority 和 path。

     其中authority又分为host和port。格式如下:scheme://host:port/path

    实际的例子:

    上面的代码在模拟器中执行结果如下:,调出第一个联系人的信息。

    另一个例子

    1 Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    2         intent.setType("vnd.android.cursor.item/phone");
    3         startActivity(intent);

    上面的代码在模拟器中执行结果如下:,调出所有联系人号码。


    BroadcastReceive:接收来自系统和应用的广播。广播的注册分为静态注册和动态注册,静态注册是在AndroidManifest.xml文件中写入如下代码

    1 <receiver android:name="project_name.Project_nameActivity">
    2     <intent-filter>
    3         <action android:name="android.intent.action.Project_nameActivity"/>
    4         <category android:name="android.intent.category.DEFAULT/>
    5     </intent-filter>
    6 </receiver>

    动态注册

    MyBroadcastReceive receive = new MyBroadcastReceive();

    IntentFilter filter = new IntentFilter();

    filter.addAction("android.intent.action.MyBroadcastReceiver");

    registerReceiver(receiver,filter);


      intent 启动另一个Activity(FirstActivity 启动SecondActivity)

     1 import android.app.Activity;
     2 import android.content.Intent;
     3 import android.os.Bundle;
     4 import android.view.View;
     5 import android.widget.Button;
     6 
     7 public class FirstActivity extends Activity {
     8 
     9     @Override
    10     protected void onCreate(Bundle savedInstanceState) {
    11         super.onCreate(savedInstanceState);
    12         setContentView(R.layout.firstactivity_layout);// 设置页面布局
    13         Button button = (Button) findViewById(R.id.button);// 通过ID值获得按钮对象
    14         button.setOnClickListener(new View.OnClickListener() {// 为按钮增加单击事件监听器
    15 
    16             public void onClick(View v) {
    17                 Intent intent = new Intent();// 创建Intent对象
    18                 intent.setAction(Intent.ACTION_VIEW);// 为Intent设置动作
    19                 startActivity(intent);// 将Intent传递给Activity
    20             }
    21         });
    22     }
    23 }
     1 import android.app.Activity;
     2 import android.os.Bundle;
     3 
     4 public class SecondActivity extends Activity {
     5 
     6     @Override
     7     protected void onCreate(Bundle savedInstanceState) {
     8         super.onCreate(savedInstanceState);
     9         setContentView(R.layout.secondactivity_layout);// 设置页面布局
    10     }
    11 }
  • 相关阅读:
    MyBatis执行sql的整个流程
    Ftp传输:向linux服务器上传文件时“550 Permission denied.”错误问题解决
    SpringBoot框架:两个方法同时调用时父方法使内部方法的DataSource注解失效的解决办法
    SpringBoot框架:通过AOP和自定义注解完成druid连接池的动态数据源切换(三)
    SpringBoot框架:配置文件application.properties和application.yml的区别
    SpringBoot框架:'url' attribute is not specified and no embedded datasource could be configured问题处理
    bash脚本打印字符串一个空格的内容
    gethostbyname的线程安全
    算法工程师的职业规划
    理解Deep Link & URI Schemes & Universal Link & App Link
  • 原文地址:https://www.cnblogs.com/hxjbc/p/5172060.html
Copyright © 2011-2022 走看看