当设备在Android上启动时,我一直在尝试启动服务,但我无法让它工作.我在网上看了很多链接,但没有一个代码可以工作.我忘记了什么吗?
<receiver
android:name=".StartServiceAtBootReceiver"
android:enabled="true"
android:exported="false"
android:label="StartServiceAtBootReceiver" >
<intent-filter>
<action android:name="android.intent.action._BOOT_COMPLETED" />
</intent-filter>
</receiver>
<service
android:name="com.test.RunService"
android:enabled="true" />
Run Code Online (Sandbox Code Playgroud)
public void onReceive(Context context, Intent intent) {
if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
Intent serviceLauncher = new Intent(context, RunService.class);
context.startService(serviceLauncher);
Log.v("TEST", "Service loaded at start");
}
}
Run Code Online (Sandbox Code Playgroud) 我想定期(每周一次)运行一些任务(即获取我的网站新闻页面),即使我的申请已经关闭.可能吗?
我需要AlarmReceiver在10秒后启动活动(例如).我需要在不运行应用程序的情况下激活它.但无论应用程序是否运行,AlarmReceiver都不会被调用.有什么建议?
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 111, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
//alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
//+ (10 * 1000), pendingIntent);
Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud) 我对Android 有点困惑Timer和AlarmManager使用.
它们之间的主要区别是什么?
他们都计划每隔A秒运行一次任务.他们首选使用的主要方案是什么?
例如,对于X情况,Timer另一方面使用,对于Y情况,请使用AlarmManager.
如果Android应用程序想要使用Alarm Manager Service,那么应用程序需要具有哪些权限?
我已经测试过,应用程序似乎不需要任何权限来使用Alarm Manager Service.
真的吗?
我想在每天上午8:00创建通知.我在SQLite数据库中有一些数据,此时我每天都想从中获取数据并从中创建通知.创建新通知没有问题,但我现在每天如何显示它?
我想我必须使用服务但是如何告诉系统在特殊时刻启动此服务?我应该使用什么样的服务?我想如果系统调用该服务,它会启动一个特定的功能,我可以运行我的代码连接到数据库并创建并将我的通知发送到系统吗?
我无法理解的是,如果我在我的主Activity中注册该服务,为什么系统会在用户关闭我的应用程序时启动服务?任何人都可以向我解释一下吗?我总是认为如果我的主要活动被破坏,服务也会被破坏.
我正在尝试构建一个将在DeskClock应用程序中设置警报的个人应用程序.我可以让它在当天的任何时间设置闹钟,但是我如何设置第二天或本周晚些时候的闹钟.通过android中的AlarmClock api查看我没有看到正常的方法来做到这一点.这甚至可能吗?
顺便说一下,这是我设置警报的代码,它可能不太漂亮,但我正在学习.
package com.netwokz.setit;
import java.util.Calendar;
import java.util.GregorianCalendar;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.provider.AlarmClock;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity implements OnClickListener {
Button btnSetAlarm;
EditText etHour, etMinute;
int minute, hour, day;
Calendar cal;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
btnSetAlarm = (Button) findViewById(R.id.btn_set_alarm);
etHour = (EditText) findViewById(R.id.etHour);
etMinute = (EditText) findViewById(R.id.etMinute);
btnSetAlarm.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_activity, menu);
return true;
}
@Override …Run Code Online (Sandbox Code Playgroud) 我需要编写一个应用程序,每隔5分钟确定一次移动电话的当前位置(使用所有免费的可用位置提供商)并将其发送到服务器.
如果某个位置提供程序在应用程序启动时不起作用,但稍后可用,则应用程序也应处理其位置数据.
为了做到这一点,我实施了以下课程.在我的一个活动中,我创建了一个实例并调用它的startTrackingUpdates方法.locationChangeHandler处理位置数据.
public class LocationTracker implements ILocationTracker, LocationListener {
public static final long MIN_TIME_BETWEEN_UPDATES = 1000 * 60 * 5; // 5 minutes
public static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters
private ILocationManager locationManager;
private ILocationChangeHandler locationChangeHandler;
public LocationTracker(final ILocationManager aLocationManager,
final ILocationChangeHandler aLocationChangeHandler) {
this.locationManager = aLocationManager;
this.locationChangeHandler = aLocationChangeHandler;
}
public void startTrackingUpdates() {
final List<String> providers = locationManager.getAllProviders();
for (final String curProviderName : providers)
{
final ILocationProvider provider = locationManager.getLocationProvider(curProviderName); …Run Code Online (Sandbox Code Playgroud) 我用它来调用另一个活动
Main.java
Intent intent = new Intent(this, Message_Note.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
Message_Note.java:
public class Message_Note extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.message);
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能在10秒后关闭Message_Note活动?我应该使用一个线程?
我正在测试AlarmManager在我的应用程序中使用,并且当我希望它在1分钟后启动时它会立即触发我的广播接收器.代码如下:
public class SetMealTimersActivity extends Activity {
PendingIntent pi;
BroadcastReceiver br;
AlarmManager am;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_set_meal_timers);
br = new BroadcastReceiver() {
@Override
public void onReceive(Context c, Intent i) {
Toast.makeText(c, "Ready to Go!", Toast.LENGTH_LONG).show();
}
};
registerReceiver(br, new IntentFilter("com.ian.mealtimer"));
pi = PendingIntent.getBroadcast(this, 0, new Intent(
"com.ian.mealtimer"), 0);
am = (AlarmManager) (this.getSystemService(Context.ALARM_SERVICE));
am.set( AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() +
60 * 1000, pi );
}
Run Code Online (Sandbox Code Playgroud) android ×10
alarmmanager ×2
java ×2
alarm ×1
eclipse ×1
geolocation ×1
permissions ×1
service ×1