intent

Android中的广播Broadcast详解

老子叫甜甜 提交于 2019-12-04 01:36:30
今天来看一下Android中的广播机制,我们知道广播Broadcast是Android中的四大组件之一,可见他的重要性了,当然它的用途也很大的,比如一些系统的广播:电量低、开机、锁屏等一些操作都会发送一个广播,具体的Android系统中的广播可以参见我的另外一篇博客: http://blog.csdn.net/jiangwei0910410003/article/details/17218985 . 下面就来详细讲解一下广播机制: 广播被分为两种不同的类型:“ 普通广播 (Normal broadcasts)”和“ 有序广播 (Ordered broadcasts)”。 普通广播是完全异步的,可以在同一时刻(逻辑上)被所有广播接收者接收到,消息传递的效率比较高,但缺点是:接收者不能将处理结果传递给下一个接收者,并且无法终止广播Intent的传播 ; 然而有序广播是按照接收者声明的优先级别(声明在intent-filter元素的android:priority属性中,数越大优先级别越高,取值范围:-1000到1000。也可以调用IntentFilter对象的setPriority()进行设置),被接收者依次接收广播 。如:A的级别高于B,B的级别高于C,那么,广播先传给A,再传给B,最后传给C。A得到广播后,可以往广播里存入数据,当广播传给B时,B可以从广播中得到A存入的数据。

基础总结篇之五:BroadcastReceiver应用详解

与世无争的帅哥 提交于 2019-12-04 01:36:06
問渠那得清如許?為有源頭活水來。南宋.朱熹《觀書有感》 据说程序员是最爱学习的群体,IT男都知道,这个行业日新月异,必须不断地学习新知识,不断地为自己注入新鲜的血液,才能使自己跟上技术的步伐。 今天我们来讲一下Android中BroadcastReceiver的相关知识。 BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。 在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时 系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作;当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户 及时保存进度,等等。 Android中的广播机制设计的非常出色,很多事情原本需要开发者亲自操作的,现在只需等待广播告知自己就可以了,大大减少了开发的工作量和开发 周期。而作为应用开发者,就需要数练掌握Android系统提供的一个开发利器,那就是BroadcastReceiver。下面我们就对 BroadcastReceiver逐一地分析和演练,了解和掌握它的各种功能和用法。 首先,我们来演示一下创建一个BroadcastReceiver,并让这个BroadcastReceiver能够根据我们的需要来运行。

基础总结篇之五:BroadcastReceiver应用详解

廉价感情. 提交于 2019-12-04 01:35:48
問渠那得清如許?為有源頭活水來。南宋.朱熹《觀書有感》 据说程序员是最爱学习的群体,IT男都知道,这个行业日新月异,必须不断地学习新知识,不断地为自己注入新鲜的血液,才能使自己跟上技术的步伐。 今天我们来讲一下Android中BroadcastReceiver的相关知识。 BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。 在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时 系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作;当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户 及时保存进度,等等。 Android中的广播机制设计的非常出色,很多事情原本需要开发者亲自操作的,现在只需等待广播告知自己就可以了,大大减少了开发的工作量和开发 周期。而作为应用开发者,就需要数练掌握Android系统提供的一个开发利器,那就是BroadcastReceiver。下面我们就对 BroadcastReceiver逐一地分析和演练,了解和掌握它的各种功能和用法。 首先,我们来演示一下创建一个BroadcastReceiver,并让这个BroadcastReceiver能够根据我们的需要来运行。

Android在Service中弹出对话框二

旧街凉风 提交于 2019-12-03 22:35:00
上一篇我也写了一篇弹窗的,但是经过测试,Android8.0之后用不了,所以改一下 Myservice.class package com.nf.service; import android.app.AlertDialog; import android.app.AliasActivity; import android.app.Dialog; import android.app.Service; import android.content.DialogInterface; import android.content.Intent; import android.os.Binder; import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.util.Log; import android.view.WindowManager; import android.widget.Toast; import java.sql.Time; import java.util.Objects; import java.util.Timer; import java.util.TimerTask; public

Android 在Service中弹出对话框

馋奶兔 提交于 2019-12-03 22:26:34
// 服务启动 @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.i("MyServer", "服务启动了"); Timer timer = new Timer(); int n = 5 * 60 * 10000; timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { new Thread(new Runnable() { @Override public void run() { Looper.prepare(); // TODO: 2019/11/7 AlertDialog.Builder builder=new AlertDialog.Builder(MyApp.getContext()); builder.setTitle("提示"); builder.setMessage("已经过去五秒了\n且行器珍惜"); builder.setNegativeButton("明白了",null); Dialog dialog=builder.create(); dialog.getWindow().setType(WindowManager.LayoutParams.TYPE

18.意图的跳转,拨号,短信,网页,

跟風遠走 提交于 2019-12-03 20:54:13
本次实例实现能够通过意图进行页面的跳转,拨打电话,发送短信,跳转网页, 进行操作的文件有 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.xialm.intent_jump_call_sms_web.MainActivity">

Android判断com.android.camera.action.CROP是否存在

半城伤御伤魂 提交于 2019-12-03 17:23:29
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自 http://javaexception.com/archives/225 最近线上报错,有个用户连续crash了10次左右,查看了下堆栈信息,发现是提示com.android.camera.action.CROP这个Intent找不到,报了ActivityNotFound的错误。根据经验得出结论,这个用户的设备上,肯定是去掉了支持Crop的应用,所以直接做Intent隐私跳转到这会crash,思考了下,解决思路是在跳转前做检测,或者是全局做检测。 全局检测的方式: public boolean isAvailable(Context context, Intent intent) {   PackageManager packageManager = context.getPackageManager(); List list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);   return list.size() > 0;} 经过测试,在com.android.camera.action.CROP没效果,只能放弃,但是这个对某些Intent是支持的,也是一种办法 第二种就是在跳转前检测:

Android 服务和广播的使用

风流意气都作罢 提交于 2019-12-03 17:02:27
Android 服务和广播的使用 服务的使用 创建服务类 创建一个java文件,取名 mService.java,继承Service。 public class mService extends Service {} 返回服务控制器   /** * 绑定服务 * * @param intent * @return */ @Override public IBinder onBind(Intent intent) { return new myControl(); } 创建一个中间类,来操作服务类方法。 /** * 中间类 */ public class myControl extends Binder { // 创建方法,可供其他activity内调用 public void mcontrol(String instructions) { // .... } } 创建服务 /** * 创建服务 */ @Override public void onCreate() { super.onCreate(); // ....创建服务时执行的方法 } 开启服务 /** * 开启服务 */ @Override public int onStartCommand(Intent intent, int flags, int startId) { return super

17.安卓通知

萝らか妹 提交于 2019-12-03 15:05:54
实现结果如下 需要修改的地方有四个地方, 实现思想, 实现代码 xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.xialm.message.MainActivity" android:orientation="vertical"> <LinearLayout android

Android 状态栏通知 Notification

偶尔善良 提交于 2019-12-03 15:00:16
private NotificationManager manager; private Notification.Builder builder; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); // 创建一个通知管理类 manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); builder = new Notification.Builder(this); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(MainActivity.this, MainActivity.class); PendingIntent