在处理intent-filter后导航回来

时间:2017-10-28 12:01:49

标签: android android-intent intentfilter

我有一个申请。当我点击"分享"我希望它出现在其他应用程序中然后我希望它处理它收到的数据并返回调用者应用程序。

E.g。我正在分享一个facebook帖子:
1)我的应用程序打开了 2)将信息保存到DB
3)返回FB帖子

如何实现返回FB帖子?

我尝试引用callingActivity,但它为空。

意图过滤器:

<intent-filter android:label="@string/app_name">
            <action android:name="android.intent.action.SEND"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="*/*"/>
</intent-filter>

的活动:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val intent = intent
    val action = intent.action
    val type = intent.type


    if (intent.getStringExtra(Intent.EXTRA_TEXT) != null) {

        // do some processing

        // goes recursively
        startActivity(intent)
    }

}

1 个答案:

答案 0 :(得分:0)

无论您分享的应用是什么,都会在您当前的应用中活跃,这样您就可以分享到您的应用,然后使用finish()停止您的应用。我做了一个快速测试,并能够使用这种方法从几个应用程序中分享。您的应用程序将闪烁,然后用户将在数据库写入完成后返回他们共享的应用程序。我记录了意图,以确保它正确通过并能够看到来自chrome的链接(作为示例)。

 if (intent.getStringExtra(Intent.EXTRA_TEXT) != null) {

        // do some processing
        Log.d("Extras", intent.getStringExtra(Intent.EXTRA_TEXT))

        // goes recursively
        finish()
    }