应用程序阻止屏幕 - 在打开时检测应用程序

时间:2015-05-01 10:12:23

标签: android

我需要打开一个新的锁定屏幕,同时打开另一个应用程序...我已经写了服务......但是我的应用程序没有工作...

public int onStartCommand(Intent intent, int flags, int startId) {
         Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
    ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager.getRunningTasks(1);
    ActivityManager.RunningTaskInfo ar = RunningTask.get(0);
    String   activityOnTop=ar.topActivity.getClassName();
    if(activityOnTop!=null)
    {
        Toast.makeText(this,"activityOnTop"+""+activityOnTop,Toast.LENGTH_LONG).show();
        {
          Intent lockIntent = new Intent(this, LockScreen.class);
            lockIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
           this.startActivity(lockIntent);


        }
    }

    return START_STICKY;
 }

1 个答案:

答案 0 :(得分:0)

您的服务似乎很好,也许您想查看mine which I wrote a few months ago

自Andriod L(Android 5.0)以来,getRunningTasks()不再提供当前活动(由于安全原因)。如果您想了解更多信息,请查看此stackoverflow帖子:Alternative to getRunningTasks in Android L

但是,似乎有一些解决方法:在Android 5.0中,您仍然可以获取所有正在运行的任务,然后在其流程重要性后进行过滤。如果重要性等于IMPORTANCE_FOREGROUND,则此应用可能目前位于前台。可以找到一个示例in this stackoverflow answer