【发布时间】:2016-03-13 15:53:18
【问题描述】:
我想从我的 PreferenceFragment 启动后台服务。为了实现这一点,我首先创建了 Service:
public class MyService extends IntentService {
private static final String TAG = makeLogTag(MyService.class);
public MyService() {
super(TAG);
}
@Override
protected void onHandleIntent(Intent intent) {
Toast.makeText(this, "It's working", Toast.LENGTH_SHORT).show();
}
}
然后我添加了应该启动意图的首选项:
<PreferenceScreen
android:title="@string/my_preference">
<intent android:action="MY_SERVICE"/>
</PreferenceScreen>
当然,我在 AndroidManifest.xml
中添加了特殊属性<service
android:name=".MyService"
android:exported="false">
<intent-filter>
<action android:name="MY_SERVICE"/>
</intent-filter>
</service>
问题
很遗憾,我遇到了无法找到带有 act="MY_SERVICE" 的 Activity 的错误。我知道用Activity是没有问题的,但是如何启动Service呢?
【问题讨论】:
-
标签用于启动 Activity,而不是Service -
我注意到了,但是如何启动服务呢?
-
来自
Activity? -
来自 PreferenceFragment
-
所以直接从
PreferenceFragment调用startService,有什么问题?
标签: android intentservice preferencefragment