当使用标志FLAG_ACTIVITY_NEW_TASK时,如果任务已经在为您正在启动的活动运行,我想要一个新的活动不能启动 - 相反,我希望将当前任务简单地带到屏幕的前面吧是最后一次。
如何通过其他应用的服务来实现?我想通过服务启动actvityManager.getRunningAppProcesses()
中的应用。我知道如何以新的方式启动此应用程序:
Context context = this.getBaseContext();
PackageManager pm = context.getPackageManager(); Intent intent = pm.getLaunchIntentForPackage(LevelappPackageName); context.startActivity(意图);
但我想以这种方式表现出来:
context.startActivity(intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
我知道如何查看我的应用是否正在运行:
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"))
但是我怎么知道某个应用程序当前是否正在运行 - 此时它已在屏幕上显示了?!
答案 0 :(得分:0)
您需要在{1}}的清单中添加intent-filter
action
。您还需要Activity
PendingIntent
,其中action
可以从Service
发送。您可能还需要查看清单launchMode=singleTop
和/或Context.startActivityIfNeeded
。
如果Activity
有焦点,则会调用onWindowFocusChanged
方法。用它来设置你可以阅读的变量。