在Intent.ACTION_SEND时恢复应用程序而不会丢失上一个活动

时间:2012-08-29 22:59:50

标签: android android-intent

我的恢复/暂停应用程序有问题。现在,假设我们有一个覆盖onBackPressed()方法的活动,并重新定义此方法如下:

@Override
public void onBackPressed() {
    moveTaskToBack(true);
}

所以,它在后台运行没有任何问题。因此,要恢复我的应用程序,我在onResume()覆盖方法中声明了以下代码:

@Override
protected void onResume() {
    Intent resume = new Intent(this, MainActivity.class);
    if ((resume.getFlags() & Intent.FLAG_ACTIVITY_REORDER_TO_FRONT) != 0) {
        resume.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
        Logger.e(M_tag, "Resume Activity");
        startActivity(resume);
        return;
    }

    super.onResume();
}

在最小化过程之后,我可以成功恢复活动,但我遇到的问题是,当我长按Internet Browser中的链接并与我的应用程序共享链接时,它会恢复活动但是不要运行条件

if (getIntent().getAction().equals(Intent.ACTION_SEND))

我在onCreate()覆盖方法中定义,如下所示:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if (getIntent().getAction.equals(Intent.ACTION_SEND))
        Log.e("App", "In action send mode");
}

我在后台没有进程时测试了Intent.ACTION_SEND操作,并且成功运行了这个条件,但现在,我如何强制我的应用程序运行ACTION_SEND意图?

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果你没有获得OnCreate的新意图,你将获得OnNewIntent

在此方法中再次处理意图。