我希望用户能够共享/发送到我的应用程序,但是我不想启动活动(我只需要在网络上发送一些数据,并显示成功消息弹出窗口)。我当时在想使用广播接收器,但是下面显示的意图过滤器虽然在正常活动中可以正常工作,但对接收器却不起作用(即我的应用程序未显示在我可以共享的内容列表中) )。
<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.NoDisplay
,Theme.Translucent.NoTitleBar
或其他没有UI的活动。只是不要在setContentView()
中调用onCreate()
,而是执行您的工作(例如,启动IntentService
进行网络I / O),然后调用finish()
。