Android浮动小球与开机自启动(二)

2015-07-26 13:14:07 · 作者: · 浏览: 82
利用ImageButton组件来实现小球,关键在于其显示的图片是圆形。


  因此,要想将浮动窗口实现为其他形状,只需制作相应的图片赋给组件。



  对于小球的功能,只是实现了在手机屏幕上随意拖动,单击消失三秒后重现。


  3、浮动小球有了,怎么让它启动呢?注意上面实现的类Service1,继承的是Service。


  在ManiActivity.java中,让其显现的方式很简单,代码如下:


finish();
Intent intent = new Intent(getApplicationContext(), Service1.class);
startService(intent);


  注意,这里对于MainActivity类不需要做任何处理,新建工程时默认就好。当然,要实现其他功能例外。


  代码finish();可加可不加,加上之后使得程序一运行就只剩下小球,原来的界面让其消失。


  效果图如下,图形找的是红色小火焰。



  4、到此,浮动小球就实现了,那怎么让它开机自启动呢?


  其实也很简单,用到了BroadcastReceiver。


  还是先添加权限:



  另外,对于系统的广播消息,要想在开机等时刻能够捕获到,还需添加以下内容:



? ? ? ?
? ? ? ? ? ? ? ?
? ? ? ?


  实现代码如下:


package com.XXX.autostart;


import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;


public class BootBroadcastReceiver extends BroadcastReceiver {


? ? static final String ACTION = "android.intent.action.BOOT_COMPLETED";


? ? @Override
? ? public void onReceive(Context context, Intent intent) {


? ? ? ? if (intent.getAction().equals(ACTION)) {
? ? ? ? ? ? Intent intent1 = new Intent(context, Service1.class);
? ? ? ? ? ? intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
? ? ? ? ? ? context.startService(intent1);
? ? ? ? }
? ? }
}


  将手机ReBoot,可以发现红色小球会自行启动,不过速度比较慢(和360安全卫士相比)。