如果应用程序从共享功能实例化后,如何关闭我的应用程序

时间:2015-01-27 08:14:36

标签: android android-intent

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

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

  1. 登录用户
  2. 从服务器初始化一些基本信息
  3. 将他们带到一个屏幕,在那里他们可以输入他们共享的内容的标题+从实例化共享的其他应用程序提供的内容
  4. 允许用户按下按钮将其上传到服务器。
  5. 问题是,虽然上述步骤都运行良好,但在上传完成后我无法找到终止我的应用的方法。这意味着,我的应用程序位于另一个应用程序(启动共享意图)的顶部,用户无法返回到原始应用程序,除非他们按下后退按钮几次。

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

    到目前为止我尝试过:

    1. 我尝试在上传完成后向ShareActivity(处理共享的主要活动)提出意图,然后在那个上调用onFinish,但不幸的是,这只会让我再次上传活动这是堆栈中的上一个活动。即使ShareActivity应该是活动堆栈中的父活动,因此无论出于何种原因,在intent中使用的FLAG_ACTIVITY_CLEAR_TOP似乎没有任何影响。
    2. 我试图在ShareActivity上调用system.exit(0)(使用(1)中提到的意图进行实例化。这只是完全重新启动我的应用程序,同时仍然位于启动共享的应用程序的顶部。< / LI>

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

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

      我确信必须有办法做到这一点,这就是为什么我在这里提出问题,以防有人之前已经遇到过这个问题,并且能够帮助我。

      非常感谢,

1 个答案:

答案 0 :(得分:0)

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