2017-03-07 4 views
-1

나는이 앱을 사용하기 전에 다른 앱을 시작하고 활동을 시작한다고 생각하는 코드 조각을 가지고 있습니다. 문제는 다른 응용 프로그램에 대해서는 효과적이지 않지만 내 응용 프로그램이 시작되고 다른 응용 프로그램이 아닌 것을 감지한다는 것입니다. 제발 도와주세요, 내 프로젝트이고 제대로 구현해야하고 거기에 코드가 없습니다.다른 앱이 실행 중임을 감지합니다.

private final Handler toastHandler = new Handler() 
{ 
    @Override 
    public void handleMessage(Message msg) 
    { 
    String activityOnTop; 
    ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
    List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager.getRunningTasks(1); 
    ActivityManager.RunningTaskInfo ar = RunningTask.get(0); 
    activityOnTop=ar.topActivity.getClassName(); 

    if(activityOnTop.equals("com.appcontroller")) 
    { 
     pActivity = activityOnTop.toString(); 
    } 
    else 
    { 
     if(activityOnTop.equals(pActivity) || activityOnTop.equals("com.appcontroller")) 
     { 

     } 
     else 
     { 
     Intent i = new Intent(MyService.this, BreakTimeView.class); 
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(i); 
      Toast.makeText(MyService.this, pActivity, 1).show(); 
      pActivity = activityOnTop.toString(); 

     } 
    } 




    } 
};  

답변

0

실시간으로 앱 실행을 감지 할 수 없습니다. 귀하의 방법은 단 한 번만 최고 작업을 감지합니다. 당신은 서비스를 만들고 exemaple을 위해 매 초마다 당신의 방법을 시작해야합니다. 그러나 그것은 매우 나쁜 습관입니다. 당신은 매우 빨리 배터리를 죽일 것입니다.

관련 문제