0

我在使用服务启动警报管理器时遇到问题。使用以下代码从 mainActicity 启动服务:

Intent intent = new Intent(this, YourService.class);
        startService(intent);

我已经使用以下代码在清单中定义了服务:

<activity
        android:name=".YourService"
        android:label="@string/app_name" 
        android:screenOrientation="portrait">
        <intent-filter>
                <action android:name="com.sjjgames.abortionappnoads.YOURSERVICE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
<service android:name=".YourService" />

这就是“YourService”类的样子:

package com.sjjgames.abortionappnoads;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;

public class YourService extends Service
{
    Alarm alarm = new Alarm();
    public void onCreate()
    {
        super.onCreate();       
    }

    public void onStartCommand(Context context,Intent intent, int startId)
    {
        alarm.SetAlarm(context);
    }

    @Override
    public IBinder onBind(Intent intent) 
    {
        return null;
    }
}

该服务应该调用一个名为“Alarm”的类,但该服务似乎永远不会启动。

4

1 回答 1

0

OnStartCommand的签名错误,所以它没有覆盖基类,它应该返回一个int. 使用@Override注释有助于捕获这些错误。请务必返回START_与您希望服务运行方式相对应的代码之一。有关更多详细信息,请参阅服务生命周期

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
于 2013-01-26T07:41:42.550 回答