所以,让我们说我的接收器和服务是正确的,即使我重新启动设备后 class TypeA
{
public int value;
}
class TypeB
{
public int number;
public static explicit operator TypeB(TypeA v)
{
return new TypeB() { number = v.value };
}
}
class TypeC : TypeB { }
interface IFoo { }
class TypeD : TypeA, IFoo { }
void Run()
{
TypeA customTypeA = new TypeD() { value = 10 };
long longValue = long.MaxValue;
int intValue = int.MaxValue;
// Casting
TypeB typeB = (TypeB)customTypeA; // custom explicit casting -- IL: call class ConsoleApp1.Program/TypeB ConsoleApp1.Program/TypeB::op_Explicit(class ConsoleApp1.Program/TypeA)
IFoo foo = (IFoo)customTypeA; // is-a reference -- IL: castclass ConsoleApp1.Program/IFoo
int loseValue = (int)longValue; // explicit -- IL: conv.i4
long dontLose = intValue; // implict -- IL: conv.i8
// AS
int? wraps = intValue as int?; // nullable wrapper -- IL: call instance void valuetype [System.Runtime]System.Nullable`1<int32>::.ctor(!0)
object o1 = intValue as object; // box -- IL: box [System.Runtime]System.Int32
TypeD d1 = customTypeA as TypeD; // reference conversion -- IL: isinst ConsoleApp1.Program/TypeD
IFoo f1 = customTypeA as IFoo; // reference conversion -- IL: isinst ConsoleApp1.Program/IFoo
//TypeC d = customTypeA as TypeC; // wouldn't compile
}
仍然运行,我就不会打开/启动它(应用程序)时间?报警是否在到期日期和时间之后有效?
注意:重启后我不会尝试启动应用。
这是我的清单
BOOT_COMPLETED
如果没有,你能否建议我使用一些合适的代码来处理我的理想。
答案 0 :(得分:1)
您的应用在安装到手机后至少需要进行一次登录才能使其能够接收广播。如果您正在处理警报,则无需担心,因为用户需要打开应用程序来设置特定警报。
当手机关闭时,闹钟会响起。重启完成后,您的应用将收到BootCompleted
次操作。重启后无需启动应用程序。
如果用户在安装后没有打开您的应用程序,则意味着他/她没有设置任何警报。因此,无需担心重新启动这种情况,因为重启后无需重置。
<强>更新强>
尝试将属性android:enabled="true"
添加到您的接收器。最终代码应如下所示:
<receiver android:name=".OnBootReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
答案 1 :(得分:0)
重启后,AlarmManager设置的警报将丢失(无需任何额外操作)。
这是JobScheduler API拯救的一个领域。如果你在重新启动后将它们设置为持续存在,它们在重新启动后不会丢失。