【发布时间】:2015-07-12 17:58:30
【问题描述】:
我想在后台自动和时间间隔内获取数据, 我用这个但不工作不能正常工作
AndroidManifest.xml
.
.
.
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
.
.
.
<service
android:name=".NewsServiceReceiver"
android:icon="@drawable/ic_launcher"
android:label="@string/service_name" >
</service>
<receiver
android:name=".NewsReceiver"
android:enabled="true"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<receiver android:name=".NewsStartReceiver" >
</receiver>
NewsReceiver.java
public class NewsReceiver extends BroadcastReceiver {
private static final long REPEAT_TIME = 1000 * 30;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
AlarmManager service = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, NewsStartReceiver.class);
PendingIntent pending = PendingIntent.getBroadcast(context, 0, i,
PendingIntent.FLAG_CANCEL_CURRENT);
Calendar cal = Calendar.getInstance();
// start 30 seconds after boot completed
cal.add(Calendar.SECOND, 30);
service.setInexactRepeating(AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis(), REPEAT_TIME, pending);
}
}
NewsStartReceiver.java
public class NewsStartReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Intent service = new Intent(context, NewsServiceReceiver.class);
context.startService(service);
}
}
NewsServiceReceiver.java
public class NewsServiceReceiver extends Service {
.
.
.
@Override
public IBinder onBind(Intent arg0) {
return null;
}
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(DBAdapter.TAG, "[*******-----------> BACKGROUND <-----------*******]");
//My Code Here
return Service.START_NOT_STICKY;
}
}
我想在互联网连接或应用程序运行时在后台运行 NewsServiceReceiver.java 以及在时间间隔内自动运行!?
【问题讨论】:
-
你得到什么错误? logcat 中的任何内容?
-
没有错误,但是 NewsServiceReceiver.java 没有运行,我使用这个日志但从不显示
Log.i(DBAdapter.TAG, "[*******-----------> BACKGROUND <-----------*******]"); -
请将您的代码与此答案进行比较。 stackoverflow.com/questions/30489474/…
-
我无法解决我的问题,如果你想在应用程序运行或连接互联网时在后台显示
Log.i(DBAdapter.TAG, "[*******-----------> BACKGROUND <-----------*******]");,或者在时间间隔内自动运行,怎么办?请帮助我 -
在上面,我错了。