如果我的应用程序是从共享功能实例化的,那么在完成上传后如何关闭我的应用程序

How to close my app after it's finished uploading if it's instantiated from the share function

在我的应用程序中,我允许通过其他应用程序共享内容(图像或文本)。我已按照此处的说明完成此操作:https://developer.android.com/training/sharing/receive.html

当用户尝试通过其他应用分享内容时(如果应用已关闭),我必须执行以下步骤:

  1. 登录用户
  2. 从服务器初始化一些基本信息
  3. 将他们带到一个屏幕,在那里他们可以输入他们正在共享的任何内容的标题 + 从实例化共享的其他应用程序提供的内容
  4. 允许用户按下按钮将其上传到服务器。

问题是,虽然上述步骤都运行良好,但我无法找到在上传完成后终止我的应用程序的方法。这意味着,我的应用程序位于另一个应用程序(启动共享意图)之上,并且用户无法返回到原始应用程序,除非他们按下后退按钮几次。

我最想做的是在分享完成(或取消)后立即关闭我的应用程序,并将用户带回原来的应用程序。

到目前为止我尝试过的:

  1. 我试图在上传完成后向 ShareActivity(处理共享的主要 activity)提出一个意图,然后在那个上调用 onFinish 但不幸的是,这只需要我回来再次上传 activity,这是堆栈中的前一个 activity。尽管 ShareActivity 应该是 activity 堆栈中的 parent activity,但无论出于何种原因,意图中使用的 FLAG_ACTIVITY_CLEAR_TOP 在这里似乎没有任何效果。
  2. 我尝试在 ShareActivity 上调用 system.exit(0)(这是使用 (1) 中提到的意图实例化的)。这只是完全重新启动我的应用程序,同时仍然位于启动共享的应用程序之上.

我真的不知道我还能做些什么来强制关闭我的应用程序。我知道我应该让 Android 在处理应用程序的生命周期方面做任何它想做的事,只要我的应用程序以独立模式打开,我就非常满意。

但这是不同的,因为我相信我的应用程序在共享完成后肯定会完全关闭。

我确信一定有办法做到这一点,这就是为什么我在这里问这个问题,以防有人以前遇到过这个问题并且能够帮助我解决这个问题。

非常感谢,

我最终将参数 (shouldExit) 传递给捆绑包中的所有先前活动,并在 onCreate() 上检查了该参数,如果是,我调用了 finish()。不理想,因为链中有很多活动,但至少它有效。