intent

Android 中的BroadCastReceiver

不羁的心 提交于 2019-11-29 12:20:11
BroadCastReceiver 简介 (末尾有源码) BroadCastReceiver 源码位于: framework/base/core/java/android.content.BroadcastReceiver.java 广播接收者( BroadcastReceiver )用于接收广播 Intent ,广播 Intent 的发送是通过调用Context.sendBroadcast() 、 Context.sendOrderedBroadcast() 来实现的。通常一个广播 Intent 可以被订阅了此Intent 的多个广播接收者所接收。 广播是一种广泛运用的在 应用程序之间传输信息的机制 。而 BroadcastReceiver 是对发送出来的广播进行过滤接收并响应的一类组件; 来自普通应用程序,如一个应用程序通知其他应用程序某些数据已经下载完毕。 BroadcastReceiver 自身并不实现图形用户界面,但是当它收到某个通知后, BroadcastReceiver 可以启动Activity 作为响应,或者通过 NotificationMananger 提醒用户,或者启动 Service 等等。 BroadCastReceiver 的机制 1. 机制 在 Android 里面有各种各样的广播,比如电池的使用状态,电话的接收和短信的接收都会产生一个广播

android 公开静态内部类BroadcastReceiver

白昼怎懂夜的黑 提交于 2019-11-29 12:20:01
当想实现广播接收功能时,因java 是单继承,所以一般一个类都会extends Activity,所以会想到内部类来extends BroadcastReceiver,这中间可能会出现两种异常 1:java.lang.RuntimeException: Unable to instantiate receiver com.example.progressbar.ProgressBarActivity$mBroadcastReceiver: java.lang.InstantiationException: com.example.progressbar.ProgressBarActivity$mBroadcastReceiver 这是因为内部类需要写成静态的,即static static class mBroadcastReceiver extends BroadcastReceiver { //必须为静态公开的(public static) @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub } } 2: java.lang.RuntimeException: Unable to instantiate receiver com

[Android开发]简单版仿淘口令复制弹出框功能

╄→尐↘猪︶ㄣ 提交于 2019-11-29 10:54:02
使用Android系统的粘贴板管理服务及ClipboardManager通过addPrimaryClipChangedListener添加Listener来监听粘贴板的状态,很很简单的一个小功能~ 1.首先创建一个Service在后台运行: Intent intent = new Intent(this,MainService.class); startService(intent); 另外同时在OnResume()中获得粘贴板复制的内容,用于在APP未启动或者Service被关闭时重新启动APP来弹出口令窗口 @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); ClipboardManager mClipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE); Log.e("Copylistenerdemo", mClipboardManager.getPrimaryClip().getItemAt(0).getText().toString()); } 2.在Service管理粘贴板服务: mClipboardManager =

Android Camera 使用小结

泄露秘密 提交于 2019-11-29 09:26:48
Android手机关于Camera的使用,一是拍照,二是摄像,由于Android提供了强大的组件功能,为此对于在Android手机系统上进行Camera的开发,我们可以使用两类方法:一是借助Intent和MediaStroe调用系统Camera App程序来实现拍照和摄像功能,二是根据Camera API自写Camera程序。由于自写Camera需要对Camera API了解很充分,而且对于通用的拍照和摄像应用只需要借助系统Camera App程序就能满足要求了,为此先从调用系统Camera App应用开始来对Android Camera做个简单的使用小结。 调用系统Camera App实现拍照和摄像功能 不是专门的Camera应用,一般用到Camera的需求就是获取照片或者视频,比如微博分享、随手记等,对于在Symbian系统上通过简单地调用系统自带的Camera APP来实现该功能是做不到的,但是Android系统强大的组件特性,使得应用开发者只需通过Intent就可以方便的打开系统自带的Camera APP,并通过MediaStroe方便地获取照片和视频的文件路径。具体我们还是用代码来说话吧: 例1、 实现拍照 在菜单或按钮的选择操作中调用如下代码,开启系统自带Camera APP,并传递一个拍照存储的路径给系统应用程序,具体如下: imgPath = "/sdcard

Task和Activity相关

别等时光非礼了梦想. 提交于 2019-11-29 09:23:57
Task和Activity相关 这段时间在做一个项目,发现对Task和Activity掌握的还是不牢固。把相关知识整理在这里,方便查阅,有几个Flag没看明白啥意思,也没测试出来效果如何。。。 http://www.cnblogs.com/xirihanlin/archive/2010/06/03/1750811.html android:allowTaskReparenting 用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台时)——“true”,表示能移动,“false”,表示它必须呆在启动时呆在的那个Task里。 如果这个特性没有被设定,设定到<application>元素上的allowTaskReparenting特性的值会应用到Activity上。默认值为“false”。 一般来说,当Activity启动后,它就与启动它的Task关联,并且在那里耗尽它的整个生命周期。当当前的Task不再显示时,你可以使用这个特性来 强制Activity移动到有着affinity的Task中。典型用法是:把一个应用程序的Activity移到另一个应用程序的主Task中。 例如,如果e-mail中包含一个web页的链接,点击它就会启动一个Activity来显示这个页面。这个Activity是由Browser应用程序 定义的,但是

startActivityForResult()的用法

不羁的心 提交于 2019-11-29 09:23:33
startActivityForResult()的用法 举例说我想要做的一个事情是,在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理。 /*****************************/ 华丽丽的分割线 /*****************************/ 目的: A.java 是主界面,B.java 是子功能模块,要从A启动B,B干完活之后把结果汇报给A 先看 A.java 的相关代码 //-- A.java --// /* * 要做两件事情,第一是用 startActivityForResult() 启动B,其次是回收B的结果 */ //启动B Intent bintent = new Intent(A.this, B.class); //设置 bintent的Bundle的一个值 String bsay = "Hello, this is B speaking"; bintent.putExtra("listenB", bsay) startActivityForResult(bintent,0); // 参数(Intent intent, Int requestCode) 的 requestCode

Intent和PendingIntent的区别

主宰稳场 提交于 2019-11-29 09:21:46
intent英文意思是意图,pending表示即将发生或来临的事情。 PendingIntent这个类用于处理即将发生的事情。比如在通知Notification中用于跳转页面,但不是马上跳转。 Intent 是及时启动,intent 随所在的activity 消失而消失。 PendingIntent 可以看作是对intent的包装,通常通过getActivity,getBroadcast ,getService来得到pendingintent的实例,当前activity并不能马上启动它所包含的intent,而是在外部执行 pendingintent时,调用intent的。正由于pendingintent中 保存有当前App的Context,使它赋予外部App一种能力,使得外部App可以如同当前App一样的执行pendingintent里的 Intent, 就算在执行时当前App已经不存在了,也能通过存在pendingintent里的Context照样执行Intent。另外还可以处理intent执行 后的操作。常和alermanger 和notificationmanager一起使用。 Intent一般是用作Activity、Sercvice、BroadcastReceiver之间传递数据,而Pendingintent,一般用在 Notification上,

集成下intent意图

老子叫甜甜 提交于 2019-11-29 09:20:53
public static Intent openFile(String filePath) { File file = new File(filePath); if (!file.exists()) return null; /* 取得扩展名 */ String end = file.getName().substring(file.getName().lastIndexOf(".") + 1, file.getName().length()).toLowerCase(); /* 依扩展名的类型决定MimeType */ /*if (end.equals("m4a") || end.equals("mp3") || end.equals("mid") || end.equals("xmf") || end.equals("ogg") || end.equals("wav")) { return getAudioFileIntent(filePath); } else if (end.equals("3gp") || end.equals("mp4")) { return getAudioFileIntent(filePath); } else */if (end.equals("jpg") || end.equals("gif") || end.equals("png") ||

Android MediaPlayer

只谈情不闲聊 提交于 2019-11-29 07:09:13
MediaPlayer 这个类主要是播放视频类 . AudioManager 这个类管理在一个设备上的音频资源和音频输出流. Manifest 声明 1.网络声明 <uses-permission android:name = "android.permission.INTERNET" /> 2.如果播放器应用需要将屏幕变暗或者停止处理器 , 或者需要调用 MediaPlayer.setScreenOnWhilePlaying() 或者 MediaPlayer.setWakeMode() 方法, 需要声明 : <uses-permission android:name = "android.permission.WAKE_LOCK" /> MediaPlayer 类的使用 MediaPlayer 类支持几种不同媒体来源例如 : 1. 本地资源 2. 网络 URI 3. 外部 URL( 流 ) 媒体来源 1: 本地资源 ( 存储在应该的 res/raw/ 目录下) MediaPlayer mediaPlayer = MediaPlayer . create ( context , R . raw . sound_file_1 ); mediaPlayer . start (); // no need to call prepare(); create() does that for

AndroidManifest.xml配置文件详解

痴心易碎 提交于 2019-11-29 06:53:58
AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文旨在总结该配置文件中重点的用法,以便日后查阅。下面是一个标准的AndroidManifest.xml文件样例。 [html] view plain copy <? xml version = "1.0" encoding = "utf-8" ?> < manifest > <!-- 基本配置 --> < uses-permission /> < permission /> < permission-tree /> < permission-group /> < instrumentation /> < uses-sdk /> < uses-configuration /> < uses-feature /> < supports-screens /> < compatible-screens /> < supports-gl-texture /> <!-- 应用配置 --> < application > <!-- Activity 配置 --> < activity > < intent-filter > < action /> < category /> < data /> </ intent-filter > < meta-data /> </ activity > <