当前位置:  编程技术>移动开发

android基础教程之开机启动示例

    来源: 互联网  发布时间:2014-10-23

    本文导语:  Manifest.xml文件: 代码如下:                                                                注释:因为我们这个服务要一直在后台运行,所以不采用bindService的方式,而是直接采用startService的方式...

Manifest.xml文件:

代码如下:


           
               

               
           
       

注释:因为我们这个服务要一直在后台运行,所以不采用bindService的方式,而是直接采用startService的方式。

这样就不至于我们的程序结束,也把我们的服务也结束掉了。

代码如下:

package cn.start.test;

import java.util.List;
import android.annotation.SuppressLint;
import android.app.ActivityManager;
import android.app.Service;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.util.Log;

public class DaemonService extends Service {

    private static final String TAG = "Alarmreceiver";
    Handler hd1 = new Handler();
    int delay = 5000;

    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }

    @SuppressLint("NewApi")
    public void onCreate() {

        System.out.println("服务启动成功。。。。。。。。。。");
        hd1.postDelayed(mTasks, delay);

    }

    private Runnable mTasks = new Runnable() {
        @SuppressLint("NewApi")
        public void run() {
            android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_FOREGROUND);
            if (checkMainAppIsActive()) {
                Log.d(TAG, "服务检测主应用还在运行");

            } else {
                Log.d(TAG, "服务检测主应用已经关闭");
                Intent intent = getPackageManager().getLaunchIntentForPackage(
                        "cn.start.test");
                if (intent != null) {
                    DaemonService.this.startActivity(intent);
                    Log.d(TAG, "服务启动主应用程序。");
                } else {
                    Log.d(TAG, "服务检测到没有安装主应用,自动退出。");
                    return;
                }
            }
            hd1.postDelayed(mTasks, delay);

        }
    };

    /**
     * 检测是否主程序是否还在运行
     * @return
     */
    @SuppressLint({ "NewApi", "NewApi" })
    public boolean checkMainAppIsActive(){
        ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
        //获取正在运行的应用
        List run = am.getRunningAppProcesses();
        for(RunningAppProcessInfo ra : run){
            if(ra.processName.equals("cn.start.test")){
                return true;
            }
        }
        return false;
    }
}

开机自动启动程序,自然少不了开机启动广播了。

manifest.xml 文件:

代码如下:


           
               
           
       

代码如下:

public class StartupReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        Intent i = new Intent(context,LoginActivity.class);
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);

       
        Intent serviceIntent = new Intent(context,DaemonService.class);
        context.startService(serviceIntent);
    }
}

总结:开机启动广播一定在manifest文件中注册好。定时器要注意定时延迟。

通过List run = am.getRunningAppProcesses();判断自己的进程是否还在运行

通过getPackageManager().getLaunchIntentForPackage( "cn.start.test"); getPackageManager().getLaunchIntentForPackage( "cn.start.test");

来启动自己的程序。


    
 
 

您可能感兴趣的文章:

  • Android开发:TextView加入滚动条示例
  • android开发教程之switch控件使用示例
  • android开启免提切换功能示例
  • Android开发之注册登录方法示例
  • 手写android布局示例
  • Android示例程序 apps-for-android
  • android网络编程之android连接网络的简单示例代码
  • android获取当前手机号示例程序
  • android读取assets文件示例
  • android读取raw文件示例
  • android实现来电静音示例(监听来电)
  • android开机自启动app示例分享
  • android开发教程之自定义控件checkbox的样式示例
  • Android创建文件实现对文件监听示例
  • android输入框与文本框加滚动条scrollview示例
  • android保存Bitmap图片到指定文件夹示例
  • android播放gif格式图片示例
  • Android获取apk程序签名信息代码示例
  • android中设置TextView/Button 走马灯(Marquee)效果示例
  • android教程使用webview访问https的url处理sslerror示例
  • Android 开机广播的使用及配置
  • android 如何设置开机后屏幕亮度默认值为自动调节
  • android新建草稿删除后下次开机还会显示保存的草稿
  • Android开机自启动服务的实现方法
  • android开机自启动原理与实现案例(附源码)
  • android开发教程之开机启动服务service示例
  • Android中实现开机自动启动服务(service)实例
  • Android开机自启动程序详解
  • Android开机画面的具体修改方法
  • android 九宫格滑动解锁开机实例源码学习
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • android开发教程之用命令启动android模拟器并设置其内存大小
  • Android显式启动与隐式启动Activity的区别介绍
  • Android启动模拟器报错解决方法
  • 求证影响android启动速度的主要因素
  • Android Intent启动别的应用实现方法
  • android开发环境遇到adt无法启动的问题分析及解决方法
  • 解析android创建快捷方式会启动两个应用的问题
  • 解析Android应用启动后自动创建桌面快捷方式的实现方法
  • Android实现系统重新启动的功能
  • Android adb.exe程序启动不起来 具体解决方法
  • android 定时启动取消小例子
  • WAC启动Android模拟器 transfer error: Read-only file system错误解决方法
  • 解析Android中如何做到Service被关闭后又自动启动的实现方法
  • android启动问题
  • Android 避免APP启动闪黑屏的解决办法(Theme和Style)
  • Android笔记之:App应用之启动界面SplashActivity的使用
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android瀑布流实例 android_waterfall
  • Android开发需要的几点注意事项总结
  • Android系统自带样式 (android:theme)
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android网络共享软件 Android Wifi Tether
  • Android访问与手机通讯相关类的介绍
  • Android 图标库 Android GraphView
  • Android及andriod无线网络Wifi开发的几点注意事项
  • 轻量级Android开发工具 Android Tools
  • Android 2.3 下StrictMode介绍
  • Android 开发环境 Android Studio
  • IDEA的Android开发插件 idea-android
  • Android手机事件提醒 Android Notifier
  • XBMC的Android客户端 android-xbmcremote


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3