使用Android Alarm Manager执行特定任务

时间:2014-03-13 20:50:12

标签: android process background

是否可以使用Android Alarm Manager在特定时间触发特定任务?

我得到的日志:

03-13 22:18:20.219: E/AndroidRuntime(1140): FATAL EXCEPTION: main
03-13 22:18:20.219: E/AndroidRuntime(1140): java.lang.RuntimeException: Unable to instantiate       activity ComponentInfo{com.example.timeevent/com.example.timeevent.MainActivity}:   java.lang.ClassNotFoundException: com.example.timeevent.MainActivity
03-13 22:18:20.219: E/AndroidRuntime(1140):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880)
03-13 22:18:20.219: E/AndroidRuntime(1140):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
03-13 22:18:20.219: E/AndroidRuntime(1140):     at android.app.ActivityThread.access$600(ActivityThread.java:123)
03-13 22:18:20.219: E/AndroidRuntime(1140):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
03-13 22:18:20.219: E/AndroidRuntime(1140):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-13 22:18:20.219: E/AndroidRuntime(1140):     at android.os.Looper.loop(Looper.java:137)
03-13 22:18:20.219: E/AndroidRuntime(1140):     at android.app.ActivityThread.main(ActivityThread.java:4424)
03-13 22:18:20.219: E/AndroidRuntime(1140):     at java.lang.reflect.Method.invokeNative(Native Method)
03-13 22:18:20.219: E/AndroidRuntime(1140):     at   java.lang.reflect.Method.invoke(Method.java:511)
03-13 22:18:20.219: E/AndroidRuntime(1140):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-13 22:18:20.219: E/AndroidRuntime(1140):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-13 22:18:20.219: E/AndroidRuntime(1140):     at dalvik.system.NativeStart.main(Native  Method)
03-13 22:18:20.219: E/AndroidRuntime(1140): Caused by: java.lang.ClassNotFoundException: com.example.timeevent.MainActivity
03-13 22:18:20.219: E/AndroidRuntime(1140):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
03-13 22:18:20.219: E/AndroidRuntime(1140):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
03-13 22:18:20.219: E/AndroidRuntime(1140):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
03-13 22:18:20.219: E/AndroidRuntime(1140):     at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
03-13 22:18:20.219: E/AndroidRuntime(1140):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871)
03-13 22:18:20.219: E/AndroidRuntime(1140):     ... 11 more

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

是的,有可能。

虽然,AlarmManager本身并不是在特定时间执行特定任务,而是警报的接收器。

在实现了AlarmManager之后,它会在特定时间发送意图,您必须实现一个警报接收器,它扩展了类BroadcastReceiver并执行所需任务的代码。

有关如何设置闹钟的更多信息,请阅读Android开发者网站上scheduling repeating alarms上的教程。

编辑:您的日志显示:未找到活动com.example.timeevent.MainActivity。你重命名了吗?另外,请不要忘记在AppManifest中注册您的活动作为接收者。