随笔分类 - Android
摘要:如何拦截手机屏幕休眠和唤醒动作 当按手机的电源键时手机黑屏,这是屏幕休眠,当再次按下手机电源键时屏幕会变亮,并处于锁屏状态,这叫屏幕唤醒。Android允许通过广播接收器拦截这两个动作。但要注意,拦截屏幕休眠和唤醒广播的接收器只能通过Java代码注册,不能在AndroidManifest.xml文件中进行注册。 通过如下两个Broadcast Action可以拦截屏幕休眠和唤醒动作。 休眠动作:Intent.ACTION_SCREEN_OFF 唤醒动作:Intent.ACTION_SCREEN_ON 设拦截这两个动作的广播接收器类是ScreenOnOffReceiver,那么注册广播...
阅读全文
摘要:如何拦截来电,并检测到某些特定号码时自动挂断电话?写出关键代码。 拦截来电只需要编写一个广播接收类即可,但用代码挂断电话从Android SDK 1.5开始就将这个功能隐藏了,因此无法通过常规的方法挂断电话。不过可以通过反射技术访问Android SDK的内部功能来挂断电话。 拦截来电的广播接收类(InCallReceiver)的onReceiver方法的代码如下: public void onReceive(final Context context, Intent intent) { //获得电话管理服务,以便获得电话的状态 TelephonyManager...
阅读全文
摘要:如何获取短信内容,并写出关键的Java代码 编写一个广播接收器(ShortMessageReceiver),其中onReceiver方法的代码如下: 1 public class ShortMessageReceiver extends BroadcastReceiver{ 2 @Override 3 public void onReceive(Context context,Intent intent){ 4 Bundle bundle=intent.getExtras(); 5 if(bundle !=null) 6 ...
阅读全文
摘要:导入一个新的项目后,丢失android.jar文件解决方法:在项目名称上单击右键,选择Properties,再选择Android,再在其中选择一个project build target,点击确定之后,如果还有问题,尝试在项目名称上点击右键,然后选择Android Tools,再点击Fix Project properties。 链接:http://my.oschina.net/knife2013/blog/128809
阅读全文
摘要:如何接受广播? 接受广播首先要编写一个广播接收器类,该类必须从BroadcastReceiver或其子类继承。 在BroadcastReceiver.onReceive(Context context,Intent intent)方法中编写处理广播的代码。但要注意,广播接收器必须在AndroidManifest.xml文件中注册,代码如下: 如果同一个广播接收器处理多个广播,可以使用intent.getAction方法判断当前接受到的是哪一个广播,代码如下: if("action1".equals(intent.getAction...
阅读全文
摘要:设置Activity显示和关闭时的动画效果 通过overridePendingTransition方法可以设置Activity显示和关闭的动画效果。首先需要在res/anim目录中建立相应的动画资源文件,然后使用下面的代码在显示和关闭Activity时添加动画效果。1 Intent intent=new Intent(this,AnimationActivity.class);2 startActivity(intent);3 //通过淡入淡出的效果关闭和显示Activity4 overridePendingTransition(R.anim.fade_in,R.anim.fade_out).
阅读全文
摘要:将Activity设置成半透明的对话框 在定义Activity时指定Theme.Dialog主题就可以将Activity设置成对话框风格。通过修饰Theme.Dialog主题的android:windowBackground属性值可以改变Activity的背景图像。如果背景图像使用半透明的图像,则Activity就会变成半透明的对话框。为了修改android:windowsBackgroung属性,可以定义一个新的主题,该主题继承自Theme.Dialog,代码如下: 然后在定义Activity时直接指定MyTheme即可,代码如下:
阅读全文
摘要:直接拨号、将电话号码传入拨号程序、调用拨号程序、调用系统浏览器浏览网页、调用系统程序查看联系人、显示系统设置界面和显示Wi-Fi设置界面代码 拨打号码的代码如下: Intent callIntent=new Intent(Intent.ACTION_CALL, Uri.parse("tel:12345678")); startActivity(callIntent); 将电话号码转入拨号程序的代码如下: Intent dialIntent=new Intent(Intent.ACTION_DIAL,Uri.parse("tel:87654321"));
阅读全文
摘要:如何启用Service,如何停用Service Android中的服务和windows中的服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发现,可以使用它开发如监控之类的程序。服务的开发比较简单,如下: 第一步,继承Service类 public class SMSService extends Service{ } 第二步:在AndroidManifest.xml文件中的节点里对服务进行配置: 服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务。这两个方法 ...
阅读全文
摘要:Handler Handler的定义: 主要接收子线程发送的数据,并用此数据配合主线程更新UI。 当应用程序启动时,Android首先会开启一个主线程(也就是UI线程),主线程为管理界面中的UI空间进行事件分发。比如说,你点击了一个Button,Andriod会分发事件到Button上,来响应你的...
阅读全文
摘要:Android中的动画分为: 1.逐帧动画(Frame Animation): 把动画过程的每张静态图片都收集起来,然后由Android来控制依次显示这些静态图片,然后利用人眼”视觉暂留“的原理,给用户造成”动画“错觉,逐帧动画的动画原理与放电影的原理类似。 Android提供了另外一个类AnimationDrawable来定义使用Frame Animation。AnimationDrawable代表的动画默认是不播放的,必须在程序中启动动画播放才可以。AnimationDrawable提供了如下两个方法来开始、停止动画。 start():开始播放动画。 stop():停止播放动画。 2.补间
阅读全文
摘要:API文档中:Bundle类是一个final类://不能被继承,即没有子类public final classBundleextends Objec timplements Parcelable Cloneable 用于两个Activity之间的通讯。具体做法是: 1.新建一个Bundle类 Bundle bundle=new Bundle(); 2.Bundle类中放入数据(key-value的形式,另一个Activity里面取数据的时候,就要用到key,找出对应的value) bundle.putString("key" ," value"); 3.
阅读全文
摘要:super.onCreate(savedInstanceState)是调用父类Activity的onCreate()方法。 为什么要有super? 请看代码: public class MainActivity extends Activity{ protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(); ... } 上述代码中的protected void onCreate()方法其实是覆写了基类(Activity类)的onCreate方法.
阅读全文
摘要:你后台的Activity被系统回收怎么办?如果后台的Activity由于某种原因被系统回收了,如何在被系统回收之前保存当前状态? 除了在栈顶的Activity,其他的Activity都有可能在内存不足的时候被系统回收,一个Activity越处于栈底,被回收的可能性就越大。protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putLong("id", 1234567890);}public void onCreate(Bundle
阅读全文
摘要:本文来自:http://www.cnblogs.com/hanyonglu/archive/2012/03/28/2420515.html本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceState(),并且在介绍这两个方法之后,再分别来实现使用InstanceState保存和恢复数据功能、 Android实现屏幕旋转异步下载效果这样两个示例。 首先来介绍onSaveInstanceState() 和 onRestoreInstanceState()。关于这两个方法,一些朋友可能在Android开发过.
阅读全文
摘要:横竖屏切换时候Activity的生命周期: 这个生命周期跟清单文件里的配置有关系。 1.不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,默认首先销毁当前Activity,然后重新加载。切横屏时会执行一次,切竖屏时会执行两次。 2.设置Activity的android:configChanges=”orientation”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次。 3.设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调
阅读全文
摘要:Activity的生命周期以及回调方法图: 一个Activity主要有三种状态: 1.当在屏幕前台时(位于Activity栈的顶部),他是活跃或运行状态。他就是响应用户操作的Activity。 2.当他失去焦点但仍然可见时,他处于暂停状态。即:在他之上有另外一个Activity,这个Activity也许是透明的,或者未能完全遮蔽全屏,所以被暂停的Activity仍对用户可见。暂停的Activity仍然保留着所有的状态和成员信息并连接至窗口管理器),但是当系统处于极低内存的情况下,仍然可以杀死这个Activity。 3.如果他完全被另一个Activity覆盖时,他处于停止状态。他仍然保留所有的状
阅读全文
摘要:活动(Activity)是最基本的Android应用程序组件(另外三个是Service、BroadcastReceiver和ContentProvider)。在应用程序中,一个活动对应一个用户交互界面。每个活动都通过继承活动基类而被实现为一个独立的活动类,在这些Activity类中将使用setContentView(view)方法来显示由视图控件组成的用户界面,并对用户通过这些视图控件所触发的事件做出响应。 大多数应用程序都是由多个屏幕显示组成的。这里的每个屏幕都是一个活动,很容易实现从一个屏幕到另一个屏幕并完成新的活动。因为Android应用的多个Activity组成Activity栈,当.
阅读全文

浙公网安备 33010602011771号