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

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);   

  

}

 

}

posted @ 2011-10-09 18:57  厘米  阅读(410)  评论(0编辑  收藏  举报