Intent的功能有:

在mainActivity中为按钮1添加监听事件:

listener1 = new OnClickListener() {

@Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
       Intent intent1 = new Intent(mainActivity.this, Activity1.class);
        intent1.putExtra("mainActivity", "这是来自mainActivity的数据");
        startActivityForResult(intent1, REQUEST_CODE);
    }
};

在Activity1中接收来自mainActivity中Intent中的数据:

String data = null;
Bundle extras = getIntent().getExtras();
if (extras != null) {
    data = extras.getString("mainActivity");
}
setTitle("现在在Activity1里:" + data);

为Activity1中的按钮添加监听事件,返回一个Intent:

listener1 = new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Bundle bundle = new Bundle();
                bundle.putString("store", "数据来自Activity1");
                Intent mIntent = new Intent();
                mIntent.putExtras(bundle);
                setResult(RESULT_OK, mIntent);
                finish();
            }
        };

在mainActivity中覆写onActivityResult()方法,对返回的内容处理:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_CODE) {
            if (resultCode == RESULT_CANCELED) {
                setTitle("取消");
            } else if (resultCode == RESULT_OK) {
                String temp = null;
                Bundle extras = data.getExtras();
                if (extras != null) {
                    temp = extras.getString("store");
                }
                setTitle("在mainActivity中:"+temp);
            }
        }
    }

为按钮2添加监听事件:

protected static final String ACTION1 = "com.sunny.action.BROADCASE";

listener2 = new OnClickListener() {

@Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent2 = new Intent(ACTION1);
                sendBroadcast(intent2);
            }
        };

添加一个Broadcast Receiver,其捕获action为com.sunny.action.BROADCASE的Intent,生成Notification:

public class broadcastReceive1 extends BroadcastReceiver {
    private static final int NOTIFICATION_ID = 0;
    Context context;
    
    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        this.context=context;
       showNotification();
    }

private void showNotification() {
        // TODO Auto-generated method stub
        NotificationManager notificationManager=(NotificationManager) context.getSystemService(android.content.Context.NOTIFICATION_SERVICE);
        Notification notification=new Notification(R.drawable.icon, "在broadcastReceive1中",System.currentTimeMillis());
        PendingIntent contentIntent=PendingIntent.getActivity(context, 0, new Intent(context,mainActivity.class), 0);
        notification.setLatestEventInfo(context, "在broadcastReceive1中:", null, contentIntent);
        notificationManager.notify(NOTIFICATION_ID, notification);
    }

}

其在AndroidManifest.xml中注册:

<receiver android:name=".broadcastReceive1">
    <intent-filter>
        <action android:name="com.sunny.action.BROADCASE" />
    </intent-filter>
</receiver>

Intent的功能有:

在mainActivity中为按钮1添加监听事件:

listener1 = new OnClickListener() {

@Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
       Intent intent1 = new Intent(mainActivity.this, Activity1.class);
        intent1.putExtra("mainActivity", "这是来自mainActivity的数据");
        startActivityForResult(intent1, REQUEST_CODE);
    }
};

在Activity1中接收来自mainActivity中Intent中的数据:

String data = null;
Bundle extras = getIntent().getExtras();
if (extras != null) {
    data = extras.getString("mainActivity");
}
setTitle("现在在Activity1里:" + data);

为Activity1中的按钮添加监听事件,返回一个Intent:

listener1 = new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Bundle bundle = new Bundle();
                bundle.putString("store", "数据来自Activity1");
                Intent mIntent = new Intent();
                mIntent.putExtras(bundle);
                setResult(RESULT_OK, mIntent);
                finish();
            }
        };

在mainActivity中覆写onActivityResult()方法,对返回的内容处理:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_CODE) {
            if (resultCode == RESULT_CANCELED) {
                setTitle("取消");
            } else if (resultCode == RESULT_OK) {
                String temp = null;
                Bundle extras = data.getExtras();
                if (extras != null) {
                    temp = extras.getString("store");
                }
                setTitle("在mainActivity中:"+temp);
            }
        }
    }

为按钮2添加监听事件:

protected static final String ACTION1 = "com.sunny.action.BROADCASE";

listener2 = new OnClickListener() {

@Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent2 = new Intent(ACTION1);
                sendBroadcast(intent2);
            }
        };

添加一个Broadcast Receiver,其捕获action为com.sunny.action.BROADCASE的Intent,生成Notification:

public class broadcastReceive1 extends BroadcastReceiver {
    private static final int NOTIFICATION_ID = 0;
    Context context;
    
    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        this.context=context;
       showNotification();
    }

private void showNotification() {
        // TODO Auto-generated method stub
        NotificationManager notificationManager=(NotificationManager) context.getSystemService(android.content.Context.NOTIFICATION_SERVICE);
        Notification notification=new Notification(R.drawable.icon, "在broadcastReceive1中",System.currentTimeMillis());
        PendingIntent contentIntent=PendingIntent.getActivity(context, 0, new Intent(context,mainActivity.class), 0);
        notification.setLatestEventInfo(context, "在broadcastReceive1中:", null, contentIntent);
        notificationManager.notify(NOTIFICATION_ID, notification);
    }

}

其在AndroidManifest.xml中注册:

<receiver android:name=".broadcastReceive1">
    <intent-filter>
        <action android:name="com.sunny.action.BROADCASE" />
    </intent-filter>
</receiver>

android 之 Intent、broadcast的更多相关文章

  1. Android中Intent具体解释(二)之使用Intent广播事件及Broadcast Receiver简单介绍

    通过第一篇的解说,我们已经看到了怎样使用Intent来启动新的应用程序组件,可是实际上他们也能够使用sendBroadcast方法来在组件间匿名的广播消息. 作为一个系统级别的消息传递机制,Inten ...

  2. Android随笔之——Android广播机制Broadcast详解

    在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理.这个广播跟我们传统意义中的电台广播有些相似之处.之所以叫做广播,就 ...

  3. android 四大组件Broadcast Receiver

    本文介绍Broadcast Receiver,包括几部分内容:Broadcast Receiver概述及实例.自定义Broadcast Receiver.Broadcast Receiver的实现细节 ...

  4. Android学习笔记--Broadcast, BroadcastReceiver(广播)

    参考资料:http://www.cnblogs.com/playing/archive/2011/03/23/1992030.html 在 Android 中使用 Activity, Service, ...

  5. Android四大组件--Broadcast Receiver具体解释

    本文主要讲述了: 一.BroadcastReceiver概述: 二.BroadcastReceiver事件分类 三.BroadcastReceiver事件的编程流程 四.两类BroadcastRece ...

  6. Android组件之BroadCast简单实践

    作为Android的四大组件之一,没有理由不介绍一下BroadCast,BroadCast中文简单翻译就是广播,前阵子浙江某大学的啦啦操,广场舞的大妈,其中大妈和学生从喇叭和音响上听到的声音就是事件源 ...

  7. 【转】【Java/Android】Intent的简介以及属性的详解

    一.Intent的介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述 ...

  8. Android之Intent和Activity

    Intent能够说是Android的灵魂,程序跳转和传递数据的时候基本上就是靠Intent了.Intent在Android应用中是相当重要的,理解Intent相应用编程非常有帮助.在Android的官 ...

  9. Android学习之Broadcast初体验

    •何为 Broadcast ? Broadcast 直译广播,接下来举个形象的例子来理解下 Broadcast: 上学的时候,每个班级都会有一个挂在墙上的大喇叭,用来广播一些通知,比如,开学要去搬书, ...

  10. Android 笔记 Intent and Bundle day7

    学习了Intent与Bundle的使用,进行应用中的交互 package com.example.intent; import android.app.Activity; import android ...

随机推荐

  1. 用ssh-key-gen 在本地主机上创建公钥和密钥

    用ssh-key-gen 在本地主机上创建公钥和密钥 ligh@local-host$ ssh-keygen -t rsa

  2. 如何理解linux多用户多任务

    Linux 的单用户.多任务: 容易理解. Linux 的多用户.多任务 举个例子,比如LinuxSir.Org 服务器,上面有FTP 用户.系统管理员.web 用户.常规普通用户等.在同一时刻,比如 ...

  3. Java Lambda表达式 Stream

    Stream Stream不是集合元素,它不是数据结构并不保存数据,而是有关算法和计算的,更像是一个高级版本的Iterator,原始版本的Iterator,用户只能显式地一个一个遍历元素并对其进行操作 ...

  4. js实现接口的几种方式

    Javascript模仿接口可以有三种方式:1.注释法 2.检查属性法 3.鸭式辨形法 1.注释法:此方法属于程序文档范畴,对接口的继承实现完全依靠程序员自觉 /* interface People{ ...

  5. Android中的ListView属性使用总结

    Android中使用ListView控件比较常见,如果能知道常用的一些属性使用,肯定会少很多坑. 1.ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景 ...

  6. maven 3.3.9版本下载地址

    请使用迅雷下载 http://www-us.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.zip

  7. Yii2.0 Cookies机制和使用方法

    在实际的项目开发过程中,用到了Yii2.0 Cookies机制!但是遇到一个十分奇葩的问题,同一个YII框架,backend下Cookies能够正常存储于客户端,但是frontend始终不行.文章的最 ...

  8. nmon各配置项含义介绍

    1)nmon各配置项含义介绍

  9. vuex存取token,http简单封装、模拟登入权限校验操作、路由懒加载的几种方式、vue单页设置title

    1.config index.js下面的跨域代理设置: proxyTable: { '/api': { target: 'http://xxxx', //要访问的后端接口 changeOrigin: ...

  10. 使用JOSM编辑OpenStreetMap地图

    申明:转载请注明出处! 网上关于JOSM的使用大多只介绍了如何安装和优缺点,对于我这种小白完全还是不会,于是Google了一番,国外关于JOSM的使用的文章还是很多的, 选中一篇讲解的非常详细来翻译, ...