5 android android-activity android-applicationinfo
我可以通过进行活动来获取应用程序ID activity.getTaskId()。它将报告回来185。如果我转到另一个应用程序,然后从“共享”按钮开始我的活动,它将被放置在该应用程序堆栈中。如果我这样做activity.getTaskId(),它将192例如报告。我假设一个应用程序进程只能有一个与其关联的主任务堆栈。如何获得该任务ID?我想知道“嘿,我正在您的应用程序任务堆栈之外运行”。
我打算通过在第一次创建我的活动时轮询taskId并将其设置为我的应用程序类的成员变量来进行此操作,但是如果我的应用程序被杀死,然后首先从另一个应用程序启动,它将具有错误的任务ID,如“ AppTaskStackId”。我还没有找到任何API。
另一种方法可能是同时拥有导出和非导出活动。导出的活动将简单地转发到非导出的活动,但有一个额外的内容表示它是从外部启动的。然后,在内部启动活动时,您始终调用非导出活动,而无需额外的“isExternal”。
然后,在非导出活动中,您可以检查该额外活动是否存在,以确定该活动是内部启动的还是外部启动的。