Android服务不提供用于共享意图

时间:2014-08-02 19:59:33

标签: android intentfilter

对于我的应用程序,我希望从一些其他应用程序(如库)共享一个文件,并在后台线程中处理它。以前我使用了一个Activity来做得很好但是让用户离开了之前正在使用的应用程序,没有任何理由。我试图切换到IntentService

在我的Android清单中,我有这个

    <service
        android:name=".TestService"
        android:label="Test Image Service"
        android:exported="true"
        android:enabled="true"
        >
        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="image/*" />
        </intent-filter>
    </service>

TestService非常简单

public class TestService extends IntentService {
    public TestService() {
        super("TestServiceImageReceiver");
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        String type = intent.getType();

        Log.d("TestService", type);
    }
}

现在我将其加载到设备上,验证应用程序的其余部分是否正在运行,转到图库,共享图像,并且无法在&#34;共享图片中找到此服务&#34;对话。将<{1}}添加到某个操作可以使其正常工作。

1 个答案:

答案 0 :(得分:1)

  

现在我将其加载到设备上,验证应用程序的其余部分是否正在运行,转到图库,共享图像,并且无法在&#34;共享图片中找到此服务&#34;对话框

ACTION_SEND是一项活动操作,适用于startActivity()。服务不起作用。

  

之前我使用了一个Activity,它运行得很好但是让用户离开了之前正在使用的应用程序,没有充分的理由。

然后使用Theme.NoDisplay活动从IntentService开始onCreate(),然后拨打finish()