APP--监测已开启应用/启动第三方应用

本文介绍了如何在Android中使用计时器和服务实现特定功能,包括创建计时器、设置定时任务以及获取并操作应用任务信息。

package com.check.ft;

import java.util.List;

import java.util.Timer;

import java.util.TimerTask;

import android.app.ActivityManager;

import android.app.Service;

import android.app.ActivityManager.RunningTaskInfo;

import android.content.Context;

import android.content.Intent;

import android.os.IBinder;

import android.util.Log;

public class CheckService extends Service {

Timer timer;

TimerTask task;

String packageName="com.cart.view";

String appName="com.cart.view.VideoPlayerActivity";

@Override

public IBinder onBind(Intent intent) {

// TODO Auto-generated method stub

return null;

}

@Override

public void onCreate() {

// TODO Auto-generated method stub

super.onCreate();

Log.d("Timiing","-------------------onCreate--");

timer=new Timer();

task=new TimerTask(){

@Override

public void run() {

// TODO Auto-generated method stub

if (!getTask(appName)) {

Log.d("Timiing", "---task--------------");

openTV(packageName,appName);

 

}

}

};

timer.schedule(task, 2*60000, 60000);

}

@Override

public void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

if (timer!=null) {

timer.cancel();

}

if (task!=null) {

task.cancel();

}

}

@Override

public void onStart(Intent intent, int startId) {

// TODO Auto-generated method stub

super.onStart(intent, startId);

Log.d("Timiing","-------------------onStart--");

}

boolean getTask(String taskName)

{

    ActivityManager aManager=(ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);

    List<RunningTaskInfo> mRunningTasks=aManager.getRunningTasks(30);

   

    for (RunningTaskInfo taskInfo : mRunningTasks) {

   

    Log.d("Timiing",taskInfo.id+"-id--------name--"+taskInfo.baseActivity.getClassName());

    if (taskInfo.baseActivity.getClassName().equals(taskName)) {

return true;

}

}

   

    return false;

//     List<RunningServiceInfo> mRunningServiceInfo=aManager.getRunningServices(30);

//     for (RunningServiceInfo serviceInfo : mRunningServiceInfo) {

//     Log.d("Timiing",serviceInfo.pid+"--pid----+++++----process--"+serviceInfo.process);

// }

 }

 

void openTV(String pName,String aName)

{

Log.d("Timiing", pName+"---pName------------aName--"+aName);

Intent intent=new Intent();

    intent.setClassName(pName, aName);

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    this.startActivity(intent);   

  

}

 

}

转载于:https://www.cnblogs.com/cm1943/archive/2011/10/09/2204077.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值