我正在尝试创建一个简单的服务。
这是服务源
public class UploadService extends IntentService {
public UploadService(String name) {
super(name);
// TODO Auto-generated constructor stub
}
@Override
public int onStartCommand(Intent intent, int flags, int startId){
Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show();
return super.onStartCommand(intent, flags, startId);
}
@Override
protected void onHandleIntent(Intent intent) {
// TODO Auto-generated method stub
Toast.makeText(this, "handling intent", Toast.LENGTH_SHORT).show();
}
这是清单中服务的定义
<service
android:enabled="true"
android:name="com.sopla.Services.UploadService">
</service>
这是我用来在程序启动时调用的主活动的onCreate方法中启动服务的代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(this,
com.sopla.Services.UploadService.class);
startService(intent);
我可以调试所有onCreate方法,但是在此之后程序挂起,并且无法到达服务源代码中的断点。
我错过了什么?谢谢 卢卡
试试你的 onStartCommand:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
TODO do something useful
return Service.START_NOT_STICKY;
}
感谢每个人,但更好地检查日志猫我发现了问题。
出于某种奇怪的原因,要求 Ide 添加缺少的 IntentService 成员会添加一个带有字符串的协构函数,但在运行时会规定一个没有字符串的构造函数。
从协构体中删除字符串参数解决了问题。