如何将Share意图传递给我的片段?

时间:2014-09-25 17:10:20

标签: android android-intent android-fragments

我正在尝试接收分享意图,但我遇到的情况是我无法理解。目前我的应用程序在其他应用程序中显示为共享选项,我的活动收到这样的意图就好了。但是,我遇到了将此意图传递给我想要处理它的Fragment的问题。也就是说,片段未及时加载,我的活动将其传递出去。

以下是我在活动onCreate()中的内容:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_start_screen);
    if (savedInstanceState == null)
    {
        Log.i(TAG, "Loading new fragment");
        getFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment(), "tag")
                .commit();
    }

    PlaceholderFragment frag = (PlaceholderFragment) getFragmentManager().findFragmentByTag("tag");
    Log.i(TAG, "Fragment Exists: " + (frag != null));

    Intent intent = getIntent();
    String action = intent.getAction();
    String type = intent.getType();

    if(Intent.ACTION_SEND.equals(action) && type != null)
    {
        if("text/plain".equals(type))
        {
            //handleIntent(intent); // Doesn't do anything right now
        }
    }
}

这是我在另一个应用程序中点击Share并告诉它将文本发送到我的应用程序时的日志输出:

I/ActivityStartScreen﹕ Loading new fragment
I/ActivityStartScreen﹕ Fragment Exists: false
I/ActivityStartScreen﹕ Handling Intent
I/PlaceholderFragment﹕ Loading Fragment View

正如您所看到的,活动想要在Fragment准备好之前切换意图,即使我在处理意图之前已经将片段添加到布局中。问题的一部分是FragmentTransaction需要时间提交的事实吗?这是我能想象无效检查失败的唯一原因......

在这种情况下我该怎么做才能在准备好之后将意图传递给Fragment?

0 个答案:

没有答案