对于我的应用程序,我希望从一些其他应用程序(如库)共享一个文件,并在后台线程中处理它。以前我使用了一个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}}添加到某个操作可以使其正常工作。
答案 0 :(得分:1)
现在我将其加载到设备上,验证应用程序的其余部分是否正在运行,转到图库,共享图像,并且无法在&#34;共享图片中找到此服务&#34;对话框
ACTION_SEND
是一项活动操作,适用于startActivity()
。服务不起作用。
之前我使用了一个Activity,它运行得很好但是让用户离开了之前正在使用的应用程序,没有充分的理由。
然后使用Theme.NoDisplay
活动从IntentService
开始onCreate()
,然后拨打finish()
。