Java AlarmManager未启动我的服务
我无法让我的闹钟管理器启动我的服务Java AlarmManager未启动我的服务,java,android,service,Java,Android,Service,我无法让我的闹钟管理器启动我的服务 private PendingIntent mAlarmSender; mAlarmSender = PendingIntent.getService(MeetingManager.this,0, new Intent(MeetingManager.this, UpdateData.class), 0); long firstTime = SystemClock.elapsedRealtime(); AlarmManager am
private PendingIntent mAlarmSender;
mAlarmSender = PendingIntent.getService(MeetingManager.this,0, new Intent(MeetingManager.this, UpdateData.class), 0);
long firstTime = SystemClock.elapsedRealtime();
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 1*100, mAlarmSender);
我每5分钟在日志中看到一次以下内容。不确定是否与问题有关
12-13 11:16:17.104: DEBUG/SntpClient(58): request time failed: java.net.SocketException: Address family not supported by protocol
下面是我的UpdateData类:
package com.MeetingManager;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
public class UpdateData extends Service {
public static final String PREFS_NAME = "MyAppData";
private static final String TAG = "MyApp";
public void onCreate(Bundle savedInstanceState) {
super.onCreate();
Log.d(TAG, "HELLO");
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
Log.d(TAG, "NOT HELLO ");
return null;
}
}
下面是我的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.MeetingManager"
android:versionCode="2"
android:versionName="2.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".GetRoom"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MeetingManager"></activity>
<activity android:name=".XMLfunctions"></activity>
<activity android:name=".CreateMeeting"></activity>
<service android:enabled="true" android:name=".UpdateData" />
</application>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
尝试将标志添加到您的意图中。根据我当前的代码,我将如何添加标志?可能由于频率太高,您的请求被忽略。您正在尝试每100ms向服务发送一条命令,这不是AlarmManager
的设计目的。Intent Intent=new Intent(MeetingManager.this,UpdateData.class)代码>intent.addFlags(intent.FLAG\u活动\u新任务)
,然后在getService中,您将用Intent
替换new Intent(…)
。不过,很有可能Commonware是正确的。在这种情况下,您应该保持服务活动并使用处理程序,然后调用Handler.postDelayed(…)
Mie如下:alarmMgr.setInexactRepeating(AlarmManager.Essed\u REALTIME\u WAKEUP,SystemClock.elapsedRealtime()+30000,AlarmManager.INTERVAL\u十五分钟,PendingEvent);它仍然给出了同样的信息。