我希望用户能够共享/发送到我的应用程序,但是我不想启动活动(我只需要在网络上发送一些数据,并显示成功消息弹出窗口)。我当时在想使用广播接收器,但是下面显示的意图过滤器虽然在正常活动中可以正常工作,但对接收器却不起作用(即我的应用程序未显示在我可以共享的内容列表中) )。

    <receiver
        android:name=".MyReceiver"
        android:enabled="true"
        android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>
    </receiver>


我应该在这里使用接收器,还是有其他方法可以在不启动完整活动的情况下捕获SEND意图?

最佳答案

我的应用程序未显示在我可以共享的内容列表中


正确。这是因为ACTION_SEND用于活动。正在启动ACTION_SEND的人正在调用startActivity()。您不能用startActivity()以外的任何其他内容来响应Activity请求。


  还有其他方法可以在不启动完整活动的情况下捕获SEND意图吗?


不,欢迎您使用Theme.NoDisplayTheme.Translucent.NoTitleBar或其他没有UI的活动。只是不要在setContentView()中调用onCreate(),而是执行您的工作(例如,启动IntentService进行网络I / O),然后调用finish()

10-05 21:14
查看更多