android广播

BroadCast小结

戏子无情 提交于 2020-01-24 05:20:43
1、BroadCast注册方式   静态注册:即在AndroidManifest.xml 文件中定义               <receiver android:name=".BroadCastB">                <intent-filter>               <action android:name="android.intent.action.AIRPLANE_MODE"></action>               </intent-filter>              </receiver>   动态注册:       IntentFilter filter=new IntentFilter("com.lyy.broadcast");      filter.setPriority(1);      registerReceiver(new BroadCastC(),filter); 2、广播的发送方式   普通广播:sendBroadCast();   有序广播:sendOrderBroadCast(); 根据IntentFilter定义的优先级发送,优先级越高,越先收到广播        传递数据:在广播的传递过程中,可以使用 setResultData() 设置要传递的数据,并在下一个广播中使用 getResultData(

Broadcast 使用详解

吃可爱长大的小学妹 提交于 2020-01-24 05:20:05
极力推荐文章:欢迎收藏 Android 干货分享 阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 广播的生命周期 四大组件之一,必须在Androidmainfest.xml中注册 广播的注册(静态广播、动态广播) 广播的发送(正常、有序、持续) 广播接收(系统广播、自定义广播) Broadcast 是 Android 四大组件之一,是一种广泛运用在应用程序之间异步传输信息的机制。 Broadcast 本质上是一个 Intent 对象,差别在于 Broadcast 可以被多个 BroadcastReceiver 处理。 BroadcastReceiver 是一个全局监听器,通过它的 onReceive() 可以过滤用户想要的广播,进而进行其它操作。 1. BroadcastReceiver简介 BroadcastReceiver继承关系 BroadcastReceiver 默认是在主线程中执行,如果 onReceiver() 方法处理事件超过 10s ,则应用将会发生 ANR(Application Not Responding) ,此时,如果建立工作线程并不能解决此问题,因此建议:如处理耗时操作,请用 Service 代替。 BroadcastReceiver 继承关系

Android - Android 面试题集 -- Android 部分答案

萝らか妹 提交于 2020-01-24 05:19:22
2.1 Activity 1.Activity是什么? Activity是Android的四大组件之一。是用户操作的可视化界面;它为用户提供了一个完成操作指令的窗口。 当我们创建完毕Activity之后,需要调用setContentView()方法来完成界面的显示;以此来为用户提供交互的入口。 2.典型情况下的Activity生命周期? Activity启动–>onCreate()–>onStart()–>onResume() 点击home键回到桌面–>onPause()–>onStop() 再次回到原Activity时–>onRestart()–>onStart()–>onResume() 退出当前Activity时–>onPause()–>onStop()–>onDestroy() 3.异常情况下的Activity的生命周期 & 数据如何保存和恢复? 在onStop之前调用onSaveInstanceState保存当前Activity状态,当Activity被重新创建后,系统调用 onRestoreInstanceState,并且把Activity销毁时onSaveInstanceState方法所保存的Bundle对象 作为参数传递给onRestoreInstanceState和onCreate方法 onRestoreInstanceState的调用时机发生在onStart之后

广播与服务(二)

梦想的初衷 提交于 2020-01-24 05:03:43
服务两种启动方式 startService :服务被启动之后,跟启动它的组件没有一毛钱关系 bindService :跟启动它的组件同生共死 绑定服务和解绑服务的生命周期方法:             onCreate->onBind->onUnbind->onDestroy 找领导办证 把服务看成一个领导,服务中有一个办证方法,如何才能访问? 绑定服务时,会触发服务的 onBind 方法,此方法会返回一个 Ibinder 的对象给MainActivity,通过这个对象访问服务中的方法 绑定服务 Intent intent = new Intent(this, BanZhengService.class); bindService(intent, conn, BIND_AUTO_CREATE); 绑定服务时要求传入一个ServiceConnection实现类的对象 定义这个实现类 class MyServiceconn implements ServiceConnection{ @Override public void onServiceConnected(ComponentName name, IBinder service) { zjr = (PublicBusiness) service; } @Override public void

Xamarin.Android开发实践(七)

时光总嘲笑我的痴心妄想 提交于 2020-01-12 03:47:10
原文: Xamarin.Android开发实践(七) Xamarin.Android广播接收器与绑定服务 一、前言 学习了前面的活动与服务后,你会发现服务对于活动而言似乎就是透明的,相反活动对于服务也是透明的,所以我们还需要一中机制能够将服务和活动之间架起一座桥梁,通过本节的学习,你将会学到广播与绑定服务,这两种方式恰恰是解决上面问题的关键。 二、简单的广播接收器 实现一个最简单的广播接收器需要继承 BroadcastReceiver 类,并且还要实现 OnReceive 方法,我们可以在项目中新建一个 MainReceiver 类,然后写入如下代码: 1 public class MainReceiver : BroadcastReceiver 2 { 3 public override void OnReceive(Context context, Intent intent) 4 { 5 6 } 7 } 上面其实已经实现了一个简单的广播接收器,并且可以使用。我们还需要注册广播接收器,否则广播接收器就无法接收广播,所以我们需要在MainActivity.cs中注册这个广播接收器。当然为了能够接近现实,我们需要在 OnResume 中注册,在 OnPause 中注销。 首先我们在 OnResume 中注册 1 protected override void OnResume()

Android跨进程通信篇

女生的网名这么多〃 提交于 2020-01-03 05:17:12
前言 转载请声明,转自【https://www.cnblogs.com/andy-songwei/p/10256379.html】,谢谢! 只要是面试高级工程师岗位,Android跨进程通信就是最受面试官青睐的知识点之一。Android系统的运行由大量相互独立的进程相互协助来完成的,所以Android进程间通信问题,是做好Android开发高级工程师必须要跨过的一道坎。但是,我们是否真的清楚,Android中都有哪些方式实现跨进程通信呢?这些方式都有哪些优缺点?如何选择这些通信方式?Binder是什么?为什么要引入Binder?Binder是这么样实现跨进程通信的?AIDL是什么?AIDL和Binder又有什么关系呢?...... 本文将对Android的跨进程通、进程内通信等方面做一些总结,以及比较详细地介绍AIDL的使用,主要内容如下: 其行文脉络大致如下,希望能加深读者对这方面内容的记忆:(1)Android基于Linux系统,所以先说系统进程相关知识和Linux IPC。(2)总结Android的IPC,顺带总结了Android进程内组件之间的通信方式。(3)Android为了克服Linux IPC中的缺点,引入了Binder,所以对Binder做了一些宏观上的介绍。(4)AIDL是实现Binder最常用的工具,所以详细介绍了AIDL相关内容。 一、基础知识简介

面试常问知识点,Fragment+Activity+service等等

白昼怎懂夜的黑 提交于 2019-12-31 00:03:17
每一次去面试就是一次对自我知识的总结和审核,如果你想拿到大厂的offer.成功的通过一面二面三面四面,那么我分享的面试学习路线你可以来参考一下(PDF文档版见如下) 那么面试中最常问的小知识点不懂的透彻怕是不行了 ( 顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找 ) https://github.com/xiangjiana/Android-MS 1 、四大组件是什么 1)Activity: 用户可操作的可视化界面,为用户提供一个完成操作指令的窗口。一个 Activity通常是一个单独的屏幕,Activity通过Intent来进行通信。Android中会维持一个Activity Stack,当一个新 Activity 创建时,它就会放到栈顶,这个 Activity 就处于运行状态。 2)Service: 服务,运行在手机后台,适合执行不需和用户交互且还需长期运行的任务。 3)ContentProvider: 内容提供者,使一个应用程序的指定数据集提供给其他应用程序,其他应用可通过 ContentResolver 类从该内容提供者中获取或存入数据。它提供了一种跨进程数据共享的方式,当数据被修改后, ContentResolver 接口的 notifyChange 函数通知那些注册监控特定 URI 的 ContentObserver 对象。 如 果

Android组件之BroadcastReceiver

二次信任 提交于 2019-12-26 06:14:24
Android组件之BroadcastReceiver BroadcastReceiver介绍 广播的种类 标准广播(Normal Broadcast) 有序广播(Ordered Broadcast) 本地广播(Local Broadcast) 粘性广播(Sticky Broadcast) 本地广播的优势 注册广播的方式 静态注册 动态注册 动态注册和静态注册的区别 广播的发送 发送标准广播 发送有序广播 发送本地广播 发送Sticky广播 BroadcastReceiver使用注意 BroadcastReceiver介绍 BroadcastReceiver是Android四大组件之一,是Android开发中使用最频繁的类之一,是一种广泛运用的在应用之间消息传输机制。 Android的广播机制是一个典型的发布-订阅模式,就是观察者模式,它最大的特点就是发送方不关心接收方是否接收到数据,也不关心接收方是如何处理数据。通过这样的形式来达到接收双方的完全解耦。一个广播可以有一个或多个接收者。 广播机制主要用来监听系统或者应用发出的广播信息,然后根据广播信息做出相应的逻辑处理,也可以用来传输少量的低频数据。 Android中的广播机制包含三部分,分别是用于发送广播的Broadcast、接收广播的BroadcastReceiver和用于传递消息的Intent

BroadcastReceiver安全问题

喜夏-厌秋 提交于 2019-12-24 11:04:51
BroadcastReceiver安全问题 BroadcastReceiver 设计的初衷是从全局考虑可以方便应用程序和系统、应用程序之间、应用程序内的通信,所以对单个应用程序而言 BroadcastReceiver 是存在安全性问题的(恶意程序脚本不断的去发送你所接收的广播) 保证发送的广播要发送给指定的对象 当应用程序发送某个广播时系统会将发送的 Intent 与系统中所有注册的 BroadcastReceiver 的 IntentFilter 进行匹配,若匹配成功则执行相应的 onReceive 函数。可以通过类似 sendBroadcast(Intent, String) 的接口在发送广播时指定接收者必须具备的 permission 或通过 Intent.setPackage 设置广播仅对某个程序有效。 保证我接收到的广播室指定对象发送过来的 当应用程序注册了某个广播时,即便设置了 IntentFilter 还是会接收到来自其他应用程序的广播进行匹配判断。对于动态注册的广播可以通过类似 registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler) 的接口指定发送者必须具备的 permission ,对于静态注册的广播可以通过 android:exported="false"

AlarmManager实现闹钟功能

本秂侑毒 提交于 2019-12-22 05:50:32
一:AlarmManager简介 1、AlarmManager,顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,可以实现从指定时间开始,以一个固定的间隔时间执行某项操作,所以常常与广播(Broadcast)连用,实现闹钟等提示功能 2、AlarmManager的常用方法有三个: (1)set(int type,long startTime,PendingIntent pi); 该方法用于设置一次性闹钟,第一个参数表示闹钟类型,第二个参数表示闹钟执行时间,第三个参数表示闹钟响应动作。 (2)setRepeating(int type,long startTime,long intervalTime,PendingIntent pi); 该方法用于设置重复闹钟,第一个参数表示闹钟类型,第二个参数表示闹钟首次执行时间,第三个参数表示闹钟两次执行的间隔时间,第三个参数表示闹钟响应动作。 (3)setInexactRepeating(int type,long startTime,long intervalTime,PendingIntent pi); 该方法也用于设置重复闹钟,与第二个方法相似,不过其两个闹钟执行的间隔时间不是固定的而已。 3、三个方法各个参数详悉: (1)int type:闹钟的类型,常用的有5个值:AlarmManager.ELAPSED