我正在尝试创建一个基于警报的应用程序.我正在使用AlarmManager.事情是,它根本不可靠.在某些设备中它可以工作..在其他设备中它可以工作一段时间..而在其他设备中它根本不起作用.
当我说它不起作用就是这样,警报就不会发出警报.例如,在我的小米Mi4中,如果关闭屏幕,则不会发出警报.我有一个测试Moto G并且在那个电话警报使用工作正常,但在OnePlus中,警报也不会激活.他们根本就没有被召唤过.
我错过了什么吗?有谁知道我做错了什么?
非常感谢你的帮助!
这是我的Alarm类:
public abstract class Alarma extends BroadcastReceiver {
protected AlarmManager am;
protected PendingIntent alarmIntent;
public void cancelAlarm(Context context) {
// If the alarm has been set, cancel it.
if (am!= null) {
am.cancel(alarmIntent);
}
// Disable {@code SampleBootReceiver} so that it doesn't automatically restart the
// alarm when the device is rebooted.
ComponentName receiver = new ComponentName(context, BootReceiver.class);
PackageManager pm = context.getPackageManager();
pm.setComponentEnabledSetting(receiver,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的OneTimeAlarm,只触发一次的警报,然后再不会触发.
public class AlarmaUnaVez extends Alarma …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Android应用程序,我正在创建一个基于PHP的Web服务来从数据库中检索信息.
问题是我真的不知道如何保证这项服务.
例如,如果我的Android应用程序需要从服务器检索一些信息,它将调用http://mywebservice.com/service.php,它将发送几个POST参数作为用户和密码登录,或类似的,为例如,一个用户ID来检索他的数据.
当然,任何具有足够知识的人也能够检索这些数据.这就是我不想发生的事情.
任何知道要发送到我的服务器的参数的人都可以从中检索信息.
我怎样才能确保这一点?
我一直在阅读关于OAuth,OAuth2,它的两条腿和三条腿实现,https ..
但此刻,我真的不知道如何确保这一点.
我希望webservice只回答我的应用程序而不是其他任何人.
PS:即使有像http://myservice.com/get_information.php这样的东西,你发送一个id,你可以检索很多信息.当然,我控制在我的应用程序中,只有已登录和授权的人可以进行该调用,但无论如何这都是一个问题.做这种事的最好方法是什么?