博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 后台每10秒钟启动一次应用的demo,一次启动,永不退出
阅读量:4694 次
发布时间:2019-06-09

本文共 3980 字,大约阅读时间需要 13 分钟。

android整理

创建一个Service:

最关键的是onStartCommand 里面返回的Service.START_STICKY, 

package com.qywanwei.servicetest2;import android.app.Notification;import android.app.PendingIntent;import android.app.Service;import android.content.Intent;import android.graphics.BitmapFactory;import android.os.IBinder;import android.support.v7.app.NotificationCompat;import android.util.Log;import android.content.ComponentName;import android.content.Context;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.content.pm.ResolveInfo;import java.util.List;public class MyService extends Service  implements  Runnable{    private Thread thread;    public MyService() {    }    @Override    public IBinder onBind(Intent intent) {        // TODO: Return the communication channel to the service.        throw new UnsupportedOperationException("Not yet implemented");    }    //创建服务时候调用,第一次创建    @Override    public void onCreate() {        super.onCreate();        Log.d("MyServer", "onCreate: 创建服务");        //onCreate的时候创建初始化        thread = new Thread( this);        thread.start();//        前台服务//        Intent intent=new Intent(this,MainActivity.class);//        PendingIntent pendingIntent=PendingIntent.getActivity(this,0,intent,0);//        Notification notification=new NotificationCompat.Builder(this)//                .setContentTitle("111")//                .setContentText("22")//                .setWhen(System.currentTimeMillis())//                .setSmallIcon(R.mipmap.ic_launcher)//                .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))//                .setContentIntent(pendingIntent)//                .build();//        startForeground(1,notification);    }    //每次服务启动调用,每次启动    @Override    public int onStartCommand(Intent intent, int flags, int startId) {        Log.d("MyServer", "onCreate: 启动服务");        //如果服务并停止了,重新生成一个新的        if(thread.isInterrupted()){            thread = new Thread(this);            thread.start();        }        return Service.START_STICKY;//        return super.onStartCommand(intent, flags, startId);    }    @Override    public void run() {        int i=0;        while (true){            try {                //每10秒钟进行一次输出                Thread.sleep(10000);                //Toast.makeText(getApplicationContext(),"服务启动"+i++,Toast.LENGTH_LONG).show();                Log.d("MyServer", "服务启动"+i++);                openApp("com.qywanwei.servicetest2");            } catch (InterruptedException e) {                e.printStackTrace();            }        }    }    //    private void openApp(View v, String packageName) {    private void openApp(String packageName) {        //Context context = v.getContext();        PackageInfo pi = null;        //PackageManager pm = context.getPackageManager();        PackageManager pm = getPackageManager();        try {            pi = pm.getPackageInfo(packageName, 0);        } catch (PackageManager.NameNotFoundException e) {            e.printStackTrace();        }        Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);        resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);        resolveIntent.setPackage(pi.packageName);        List
apps = pm.queryIntentActivities(resolveIntent, 0); ResolveInfo ri = apps.iterator().next(); if (ri != null ) { packageName = ri.activityInfo.packageName; String className = ri.activityInfo.name; Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName cn = new ComponentName(packageName, className); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setComponent(cn); startActivity(intent); } } //服务销毁的时候 @Override public void onDestroy() { super.onDestroy(); Log.d("MyServer", "onCreate: 销毁服务"); }}

  

转载于:https://www.cnblogs.com/huichao1314/p/6732766.html

你可能感兴趣的文章
IDEA 创建普通的maven+java Project
查看>>
背包专题练习
查看>>
Python学习笔记(二)
查看>>
T-SQL: Create folders in remote server by sql statement
查看>>
linux SVN安装及配置教程
查看>>
poj1088 滑雪问题 dfs写法
查看>>
ZooKeeper 概述
查看>>
Django的认证系统
查看>>
GDC China 2011见闻与感悟
查看>>
[工作笔记]JDK版本不同导致的SSL异常
查看>>
java.sql.DataTruncation: Data truncation
查看>>
给dubbo接口添加白名单——dubbo Filter的使用
查看>>
linux怎样使用top命令查看系统状态
查看>>
C# DataTable.Select()方法,条件中使用类型转换
查看>>
java 装饰者类
查看>>
使用C#开发基于XSLT的代码生成器
查看>>
CLR线程池的工作者线程
查看>>
多线程中UIAlertView无法消失的问题
查看>>
js创建对象的几种方式
查看>>
MRC和ARC混合开发
查看>>