`
xun005
  • 浏览: 39748 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Intent之组件篇

 
阅读更多

http://blog.csdn.net/c8822882/article/details/6298075


Intent的中文意思是“意图,目的”的意思,可以理解为不同组件之间通信的“媒介”或者“信使”。

 

目标组件一般要通过Intent来声明自己的条件,一般通过组件中的<intent-filter>元素来过滤。

 

Intent在由以下几个部分组成:动作(action),数据(data),分类(Category),类型(Type),组件(Component),和扩展信息(Extra)。

 

Intent在寻找目标组件的时候有两种方法:第一,通过组件名称直接指定;第二,通过Intent Filter过滤指定

 

 

Intent启动不同组件的方法

组件名称
 方法名称
 
Activity
 startActivity()

startActivityForResult()
 
Service
 startService()

bindService()
 
Broadcasts
 sendBroadcast()

sendOrderedBroadcast()

sendStickyBroadcast()
 

 

 

常见的Activity Action Intent常量

常量名称
 常量值
 意义
 
ACTION_MAIN
 android.intent.action.MAIN
 应用程序入口
 
ACTION_VIEW
 android.intent.action.VIEW
 显示数据给用户
 
ACTION_ATTACH_DATA
 android.intent.action.ATTACH_DATA
 指明附加信息给其他地方的一些数据
 
ACTION_EDIT
 android.intent.action.EDIT
 显示可编辑的数据
 
ACTION_PICK
 android.intent.action.PICK
 选择数据
 
ACTION_CHOOSER
 android.intent.action.CHOOSER
 显示一个Activity选择器
 
ACTION_GET_CONTENT
 android.intent.action.GET_CONTENT
 获得内容
 
ACTION_DIAL
 android.intent.action.GET_CONTENT
 显示打电话面板
 
ACITON_CALL
 android.intent.action.DIAL
 直接打电话
 
ACTION_SEND
 android.intent.action.SEND
 直接发短信
 
ACTION_SENDTO
 android.intent.action.SENDTO
 选择发短信
 
ACTION_ANSWER
 android.intent.action.ANSWER
 应答电话
 
ACTION_INSERT
 android.intent.action.INSERT
 插入数据
 
ACTION_DELETE
 android.intent.action.DELETE
 删除数据
 
ACTION_RUN
 android.intent.action.RUN
 运行数据
 
ACTION_SYNC
 android.intent.action.SYNC
 同步数据
 
ACTION_PICK_ACTIVITY
 android.intent.action.PICK_ACTIVITY
 选择Activity
 
ACTION_SEARCH
 android.intent.action.SEARCH
 搜索
 
ACTION_WEB_SEARCH
 android.intent.action.WEB_SEARCH
 Web搜索
 
ACTION_FACTORY_TEST
 android.intent.action.FACTORY_TEST
 工厂测试入口点
 

 

常见的BroadcastIntent Action常量

BroadcastIntent Action字符串常量
 描述
 
ACTION_TIME_TICK
 系统时间每过一分钟发出的广播
 
ACTION_TIME_CHANGED
 系统时间通过设置发生了变化
 
ACTION_TIMEZONE_CHANGED
 时区改变
 
ACTION_BOOT_COMPLETED
 系统启动完毕
 
ACTION_PACKAGE_ADDED
 新的应用程序apk包安装完毕
 
ACTION_PACKAGE_CHANGED
 现有应用程序apk包改变
 
ACTION_PACKAGE_REMOVED
 现有应用程序apk包被删除
 
ACTION_UID_REMOVED
 用户id被删除
 

 

Intent的Action和Data属性匹配

Action属性
 Data属性
 说明
 
ACTION_VIEW
 content://contacts/people/1
 显示id为1的联系人信息
 
ACTION_DIAL
 content://contacts/people/1
 将id为1的联系人电话号码显示在拨号界面中
 
ACITON_VIEW
 tel:123
 显示电话为123的联系人信息
 
ACTION_VIEW
 http://www.google.com
 在浏览器中浏览该网站
 
ACTION_VIEW
 file://sdcard/mymusic.mp3
 播放MP3
 
ACTION_VIEW
 geo:39.2456,116.3523
 显示地图
 

 

 

常见的Category常量

Category字符串常量
 描述
 
CATEGORY_BROWSABLE
 目标Activity能通过在网页浏览器中点击链接而激活(比如,点击浏览器中的图片链接)
 
CATEGORY_GADGET
 表示目标Activity可以被内嵌到其他Activity当中
 
CATEGORY_HOME
 目标Activity是HOME Activity,即手机开机启动后显示的Activity,或按下HOME键后显示的Activity
 
CATEGORY_LAUNCHER
 表示目标Activity是应用程序中最优先被执行的Activity
 
CATEGORY_PREFERENCE
 表示目标Activity是一个偏爱设置的Activity
 

 

常见的Extra常量

Extra键值字符串常量
 描述
 
EXTRA_BCC
 装有邮件密送地址的字符串数组
 
EXTRA_CC
 装有邮件抄送地址的字符串数组
 
EXTRA_EMAIL
 装有邮件发送地址的字符串数组
 
EXTRA_INTENT
 使用ACTION_PICK_ACTIVITY动作时装有Intent选项的键
 
EXTRA_KEY_EVENT
 触发该Intent的案件的KeyEvent对象
 
EXTRA_PHONE_NUMBER
 使用拨打电话相关的Action时,电话号码字符串的键,类型为String
 
EXTRA_SHORTCUT_ICON
 使用ACTION_CREATE_SHORTCUT在HomeActivity创建快捷方式时,对快捷方式的描述信息。其中ICON和ICON_RESOURCE描述的是快捷方式的图标,类型分别为Bitmap和ShortcutIconResource。INTENT描述的是快捷方式相对应的Intent对象。NAME描述的是快捷方式的名字。
 
EXTRA_SHORTCUT_ICON_RESOURCE
 
EXTRA_SHORTCUT_INTENT
 
EXTRA_SHORTCUT_NAME
 
EXTRA_SUBJECT
 描述信息主题的键
 
EXTRA_TEXT
 使用ACTION_SEND动作时,用来描述要发送的文本信息,类型为CharSequence
 
EXTRA_TITLE
 使用ACTION_CHOOSER动作时,描述对话框标题的键,类型为CharSequence
 
EXTRA_UID
 使用ACTION_UID_REMOVED动作时,描述删除的用户id的键,类型为int
 

 

Android.telephony包中的类

类名
 描述
 
CellLocation
 表示设备位置的抽象类
 
PhoneNumberFormattingTextWather
 监视一个TextView控件,如果有电话号码输入,则用formatNumber()方法处理电话号码
 
PhoneNumberUtils
 包含各种处理电话号码字符串的使用工具
 
PhoneStateListener
 监视手机中电话状态变化的监听类
 
ServiceState
 包含电话状态和相关的服务信息
 
TelephonyManager
 提供对手机中电话服务信息的访问
 

 

与短信服务相关的类主要在包android.telephony.gsm中

类名
 描述
 
GsmCellLocation
 表示GSM手机的基站位置
 
SmsManager
 管理各种短信操作
 
SmsMessage
 表示具体的短信
 

 

例子一:计算器

[java] view plaincopyprint?package org.loulijun.calculate; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 
public class Calculater extends Activity { 
    /** Called when the activity is first created. */ 
    private EditText numberone; 
    private EditText numbertwo; 
    private Button mybutton; 
    private TextView symbol; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        numberone=(EditText)findViewById(R.id.numberone); 
        numbertwo=(EditText)findViewById(R.id.numbertwo); 
        mybutton=(Button)findViewById(R.id.mybutton); 
        symbol=(TextView)findViewById(R.id.symbol); 
        mybutton.setOnClickListener(new Calculate()); 
         
    } 
     
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
        // TODO Auto-generated method stub  
        menu.add(0, 1, 1, R.string.exit); 
        menu.add(0,2,2,R.string.about); 
        return super.onCreateOptionsMenu(menu); 
    } 
    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
        // TODO Auto-generated method stub  
        if(item.getItemId()==1) 
        { 
            finish(); 
        } 
        else if(item.getItemId()==2) 
        { 
            Toast.makeText(this, "亲爱的你可知,我有多么思念你!", Toast.LENGTH_SHORT).show(); 
        } 
        return super.onOptionsItemSelected(item); 
    } 
    class Calculate implements OnClickListener 
    { 
        @Override 
        public void onClick(View v) { 
            // TODO Auto-generated method stub  
            String number1=numberone.getText().toString(); 
            String number2=numbertwo.getText().toString(); 
            Intent intent=new Intent(); 
            intent.putExtra("num1",number1); 
            intent.putExtra("num2", number2); 
            intent.setClass(Calculater.this,Result.class); 
            Calculater.this.startActivity(intent); 
        } 
    } 

package org.loulijun.calculate;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class Calculater extends Activity {
    /** Called when the activity is first created. */
 private EditText numberone;
 private EditText numbertwo;
 private Button mybutton;
 private TextView symbol;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        numberone=(EditText)findViewById(R.id.numberone);
        numbertwo=(EditText)findViewById(R.id.numbertwo);
        mybutton=(Button)findViewById(R.id.mybutton);
        symbol=(TextView)findViewById(R.id.symbol);
        mybutton.setOnClickListener(new Calculate());
       
    }
   
    @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // TODO Auto-generated method stub
     menu.add(0, 1, 1, R.string.exit);
     menu.add(0,2,2,R.string.about);
  return super.onCreateOptionsMenu(menu);
 }
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
  // TODO Auto-generated method stub
  if(item.getItemId()==1)
  {
   finish();
  }
  else if(item.getItemId()==2)
  {
   Toast.makeText(this, "亲爱的你可知,我有多么思念你!", Toast.LENGTH_SHORT).show();
  }
  return super.onOptionsItemSelected(item);
 }
 class Calculate implements OnClickListener
    {
  @Override
  public void onClick(View v) {
   // TODO Auto-generated method stub
   String number1=numberone.getText().toString();
   String number2=numbertwo.getText().toString();
   Intent intent=new Intent();
   intent.putExtra("num1",number1);
   intent.putExtra("num2", number2);
   intent.setClass(Calculater.this,Result.class);
   Calculater.this.startActivity(intent);
  }
    }
}

 package org.loulijun.calculate;

[java] view plaincopyprint?import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.widget.TextView; 
public class Result extends Activity { 
    private TextView textview; 
    public void onCreate(Bundle savedInstanceState) 
    { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.result); 
        textview=(TextView)findViewById(R.id.textview); 
        Intent intent=getIntent(); 
        String numberone=intent.getStringExtra("num1"); 
        String numbertwo=intent.getStringExtra("num2"); 
        Double d1=Double.parseDouble(numberone); 
        Double d2=Double.parseDouble(numbertwo); 
        Double result=d1/d2; 
         
        textview.setText(numberone+" / "+numbertwo+" = "+result); 
    } 

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class Result extends Activity {
 private TextView textview;
 public void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.result);
  textview=(TextView)findViewById(R.id.textview);
  Intent intent=getIntent();
  String numberone=intent.getStringExtra("num1");
  String numbertwo=intent.getStringExtra("num2");
  Double d1=Double.parseDouble(numberone);
  Double d2=Double.parseDouble(numbertwo);
  Double result=d1/d2;
  
  textview.setText(numberone+" / "+numbertwo+" = "+result);
 }
}
 

main.xml

[java] view plaincopyprint?<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <EditText 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/numberone" 
        android:hint="请输入数字" 
    /> 
    <TextView 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/symbol" 
        android:text="@string/symbol" 
    /> 
    <EditText 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/numbertwo" 
        android:hint="请输入数字" 
    /> 
    <Button 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/mybutton" 
        android:text="@string/calculate" 
    /> 
</LinearLayout> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <EditText
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:id="@+id/numberone"
     android:hint="请输入数字"
    />
    <TextView
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:id="@+id/symbol"
     android:text="@string/symbol"
    />
    <EditText
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:id="@+id/numbertwo"
     android:hint="请输入数字"
    />
    <Button
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:id="@+id/mybutton"
     android:text="@string/calculate"
    />
</LinearLayout>

 result.xml

[java] view plaincopyprint?<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
  xmlns:android="http://schemas.android.com/apk/res/android
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"> 
  <TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/textview" 
  /> 
</LinearLayout> 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
  <TextView
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:id="@+id/textview"
  />
</LinearLayout>

 

注意:result.java需要注册到AndroidManifest.xml文件中

 

<activity android:name=".Result" android:label="@string/result">

</activity>

 

运行结果如下:

 

 

 

 
 

例子二:调用系统内置action

[java] view plaincopyprint?package org.hualang.intent; 
import android.app.ListActivity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
public class IntentTest extends ListActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        // 菜单项数组  
        String[] menus = { "查看电话信息", "编辑电话信息", "显示拨打电话界面","直接打电话","访问浏览器","访问地图"}; 
        // 将菜单项数组设置为ListView的列表项展示  
        setListAdapter(new ArrayAdapter<String>(this, 
                android.R.layout.simple_list_item_1, menus)); 
        getListView().setTextFilterEnabled(true); 
    } 
     
    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
        Intent intent = new Intent(); 
        Uri uri ; 
        String data; 
        switch (position) { 
        // 查看_id 为1的用户电话信息  
        case 0: 
            data = "content://contacts/people/1"; 
            uri = Uri.parse(data); 
            intent.setAction(Intent.ACTION_VIEW); 
            intent.setData(uri); 
            startActivity(intent); 
            break; 
        // 编辑_id 为1的用户电话信息  
        case 1: 
            data = "content://contacts/people/1"; 
            uri = Uri.parse(data); 
            intent.setAction(Intent.ACTION_EDIT); 
            intent.setData(uri); 
            startActivity(intent); 
            break; 
        // 显示拨打电话界面  
        case 2: 
            data = "tel:13800138000"; 
            uri = Uri.parse(data); 
            intent.setAction(Intent.ACTION_DIAL); 
            intent.setData(uri); 
            startActivity(intent); 
            break; 
        // 直接打电话  
        case 3: 
            data = "tel:13800138000"; 
            uri = Uri.parse(data); 
            intent.setAction(Intent.ACTION_CALL); 
            intent.setData(uri); 
            startActivity(intent); 
            break; 
        // 访问浏览器  
        case 4: 
            data = "http://www.google.com"; 
            uri = Uri.parse(data); 
            intent.setAction(Intent.ACTION_VIEW); 
            intent.setData(uri); 
            startActivity(intent); 
            break; 
        // 访问地图  
        case 5: 
            data = "geo:39.92,116.46"; 
            uri = Uri.parse(data); 
            intent = new Intent(Intent.ACTION_VIEW,uri); 
            startActivity(intent); 
            break; 
        default: 
            break; 
        } 
    } 

package org.hualang.intent;
import android.app.ListActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class IntentTest extends ListActivity {
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  // 菜单项数组
  String[] menus = { "查看电话信息", "编辑电话信息", "显示拨打电话界面","直接打电话","访问浏览器","访问地图"};
  // 将菜单项数组设置为ListView的列表项展示
  setListAdapter(new ArrayAdapter<String>(this,
    android.R.layout.simple_list_item_1, menus));
  getListView().setTextFilterEnabled(true);
 }
 
 @Override
 protected void onListItemClick(ListView l, View v, int position, long id) {
  Intent intent = new Intent();
  Uri uri ;
  String data;
  switch (position) {
  // 查看_id 为1的用户电话信息
  case 0:
   data = "content://contacts/people/1";
   uri = Uri.parse(data);
   intent.setAction(Intent.ACTION_VIEW);
   intent.setData(uri);
   startActivity(intent);
   break;
  // 编辑_id 为1的用户电话信息
  case 1:
   data = "content://contacts/people/1";
   uri = Uri.parse(data);
   intent.setAction(Intent.ACTION_EDIT);
   intent.setData(uri);
   startActivity(intent);
   break;
  // 显示拨打电话界面
  case 2:
   data = "tel:13800138000";
   uri = Uri.parse(data);
   intent.setAction(Intent.ACTION_DIAL);
   intent.setData(uri);
   startActivity(intent);
   break;
  // 直接打电话
  case 3:
   data = "tel:13800138000";
   uri = Uri.parse(data);
   intent.setAction(Intent.ACTION_CALL);
   intent.setData(uri);
   startActivity(intent);
   break;
  // 访问浏览器
  case 4:
   data = "http://www.google.com";
   uri = Uri.parse(data);
   intent.setAction(Intent.ACTION_VIEW);
   intent.setData(uri);
   startActivity(intent);
   break;
  // 访问地图
  case 5:
   data = "geo:39.92,116.46";
   uri = Uri.parse(data);
   intent = new Intent(Intent.ACTION_VIEW,uri);
   startActivity(intent);
   break;
  default:
   break;
  }
 }
}

 main.xml

[java] view plaincopyprint?<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<TextView   
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:text="@string/hello" 
    /> 
</LinearLayout> 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
</LinearLayout>

 AndroidManifest.xml

[java] view plaincopyprint?<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android
      package="org.hualang.intent" 
      android:versionCode="1" 
      android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
        <activity android:name=".IntentTest" 
                  android:label="@string/app_name"> 
            <intent-filter> 
                <action android:name="android.intent.action.MAIN" /> 
                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter> 
        </activity> 
    </application> 
    <uses-sdk android:minSdkVersion="8" /> 
    <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission> 
</manifest>  

 

分享到:
评论

相关推荐

    Android组件间通信--深入理解Intent与IntentFilter

    本篇文章是对Android组件间通信Intent与IntentFilter进行了详细的分析介绍,需要的朋友参考下

    Android中Intent机制详解及示例总结(总结篇)

    最近在进行android开发过程中,在将 Intent传递给调用的组件并完成组件的调用时遇到点困难,并且之前对Intent的学习也是一知半解,最近特意为此拿出一些时间,对Intent部分进行了系统的学习并进行了部分实践,下面将...

    Android应用开发详解

    第6章 Android组件之间的信使Intent Android 组件之间的信使Intent,讲述了Intent对象及其属性、Intent的实现策略和Intent的常见应用 第7章 Android Service组件 Android Service组件,讲述了Android中的后台服务...

    android应用开发详解 郭宏志编著 pdf格式

    第六章 android组件之间的信使Intent 第七章 android Service组件 第八章 android广播事件处理Broadcast Receiver 第九章 android中的数据存取 第十章 Content Provider 第十一章 android中的多媒体应用 第十二章 ...

    Android应用开发详解pdf.pdf

     第二篇 技术篇第6章 Android组件之间的信使IntentAndroid 组件之间的信使Intent,讲述了Intent对象及其属性、Intent的实现策略和Intent的常见应用  第7章 Android Service组件Android Service组件,讲述了...

    萌新Android笔记—-IntentFilter匹配篇

    开个头 101要从黄铜调回黑铁了,太难了呀,都怪匹配给...需要明确指定被启动对象的组件信息,包括包名和类名。例如: Intent intent = new Intent(Mainactivity.this,SecondActivity.class); startActivity(intent)

    Android自学视频教程 part1

    其中,第1篇为入门篇,主要包括Android入门、搭建Android开发环境、认识Android模拟器、剖析Android程序、Android常用组件的使用、掌握布局管理器、Android程序调试与错误处理、Activity的使用和使用Intent进行通信...

    Android自学视频教程 part2

    其中,第1篇为入门篇,主要包括Android入门、搭建Android开发环境、认识Android模拟器、剖析Android程序、Android常用组件的使用、掌握布局管理器、Android程序调试与错误处理、Activity的使用和使用Intent进行通信...

    Android基础教程(非常详细)从零基础入门到精通,看完这一篇就够了.zip

    文章涵盖了Android Studio的使用、活动(Activity)和界面设计、意图(Intent)和组件通信、数据存储和SQLite、高级用户界面技术、网络请求和数据解析等内容。此外,文中还提供了实践项目开发的建议,帮助读者将所学...

    Android开发应用从入门到精通光盘

    本书内容新颖、知识全面、讲解详细,全书分为4篇17章,第1—4章是基础知识与环境搭建篇,讲解了android的发展前景和开发环境的搭建过程:第5—10章是核心技术篇,详述了android的各类组件和intent、broadcast、...

    Android开发指南

    这篇文档以意图对象的描述开始,然后描述Android映射意图到组件的规则-如何解决哪个组件应该接收一个意图消息。对于没有显式命名一个目标组件的意图,这个过程包括对照与潜在目标相关联的意图过滤器来测试这个意图...

    Android核心技术与实例详解 PDF扫描版

    第二篇介绍了Android平台的高级知识 包括消息与广播服务 网络数据处理 手机通信功能 桌面组件 多媒体采集 Google服务及3D程序开发等;第三篇则对三个真实案例的开发步骤进行详细介绍 逐步向读者讲解Android手机应用...

    《零点起飞学Android开发》 PDF

    第1篇android开发基础主要介绍了android系统的发展史、基本组件、android开发环境的搭建、android布局、android基本控件、android高级控件、android辅助功能、activity和intent、service与broadcastreceiver、...

    Android典型技术模块开发详解

    第二篇 Android开发关键组件 第3章 Activity(活动) 3.1 什么是任务 3.2 Activity的生命周期 3.3 基本用法 3.3.1 创建Activity 3.3.2 启动Activity 3.3.3 窗口Activity 3.3.4 Activity生命周期验证 3.4 Activity...

    Android Service生命周期详解

    上篇Android开发之旅:组件生命周期(一)讲解了论活动的生命周期及他们可能的状态、通知状态改变的方法。本篇将介绍服务和广播接收者的生命周期: 服务生命周期 广播接收者生命周期 1、服务生命周期 一个服务可以用...

    emmmmm:备注github。VX:mm14525201314。项目,二进制〜第一时间获取最新的Android面试最新版(每日更新),音视频,Android高级,性能优化,算法,Flutter技术,FFmpeg OppenGl,资源替换,插件化,组件化,OkHttp,Rxjava,架构师,Android架构。后续持续更新中

    这是一个简单的演示,可帮助您了解Android LunchMode的更多信息,请阅读这篇文章: 用法 只需在StandardActivity中修改意图 com / example / lunchmodetest / StandardActivity.java fab.setOnClickListener(new ...

    Android编程入门很简单.(清华出版.王勇).part2

    本书避免出现云山雾罩、晦涩难懂的讲解,代之以轻松活泼、由浅入深的剖析。这必将使得阅读本书的读者少走弯路,快速上手,从而建立学习Android开发的信心。本书配带1张光盘,收录了重点内容的教学视频(8.7小时多媒体...

    Android编程入门很简单.(清华出版.王勇).part1

    本书避免出现云山雾罩、晦涩难懂的讲解,代之以轻松活泼、由浅入深的剖析。这必将使得阅读本书的读者少走弯路,快速上手,从而建立学习Android开发的信心。本书配带1张光盘,收录了重点内容的教学视频(8.7小时多媒体...

    Android开发中Activity创建跳转及传值的方法

    今天所介绍的就是Android开发中的四大组件之一:Activity,其他那三大组件以后再进行介绍。说道Android中的Activity,如果你做过iOS开发的话,Activity类似于iOS中的ViewController(视图控制器)。在应用中能看到的...

Global site tag (gtag.js) - Google Analytics