2

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

    <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 意图?

4

1 回答 1

4

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

正确的。那是因为ACTION_SEND用于活动。发起的人ACTION_SEND正在打电话startActivity()。您不能startActivity()使用除Activity.

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

不。不过,欢迎您使用Theme.NoDisplayTheme.Translucent.NoTitleBar或其他东西来进行没有 UI 的活动。只是不要调用setContentView()onCreate()而是做你的工作(例如,开始IntentService做你的网络 I/O),然后调用finish().

于 2015-11-01T22:11:53.573 回答