Android通过其他应用程序的服务启动RunningApp活动

时间:2012-05-06 20:21:29

标签: android service android-intent

当使用标志FLAG_ACTIVITY_NEW_TASK时,如果任务已经在为您正在启动的活动运行,我想要一个新的活动不能启动 - 相反,我希望将当前任务简单地带到屏幕的前面吧是最后一次。

  1. 如何通过其他应用的服务来实现?我想通过服务启动actvityManager.getRunningAppProcesses()中的应用。我知道如何以新的方式启动此应用程序:

    Context context = this.getBaseContext();
    

    PackageManager pm = context.getPackageManager(); Intent intent = pm.getLaunchIntentForPackage(LevelappPackageName); context.startActivity(意图);

  2. 但我想以这种方式表现出来:

        context.startActivity(intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
    
    1. 我知道如何查看我的应用是否正在运行:

      ActivityManager actvityManager = (ActivityManager) this.getSystemService( ACTIVITY_SERVICE );
      List<RunningAppProcessInfo> App = actvityManager.getRunningAppProcesses();
      for(int i = 0; i < App.size(); i++)
          {   
              if(App.get(i).processName.equals("myapp"))
      

      但是我怎么知道某个应用程序当前是否正在运行 - 此时它已在屏幕上显示了?!

1 个答案:

答案 0 :(得分:0)

您需要在{1}}的清单中添加intent-filter action。您还需要Activity PendingIntent,其中action可以从Service发送。您可能还需要查看清单launchMode=singleTop和/或Context.startActivityIfNeeded

如果Activity有焦点,则会调用onWindowFocusChanged方法。用它来设置你可以阅读的变量。