Android:如何在服务首次运行时拦截

时间:2013-05-27 15:40:18

标签: java android service alarmmanager

嗨,谢谢你的帮助。

我有以下情况。

我有一个AlarmManager,每隔1分钟就会启动一次服务。

我必须在第一次启动服务时才在该服务中执行特定方法。不是在后续时间启动时。

我不认为共享首选项是一种解决方案,因为如果关闭手机它们会保持不变。

我该如何解决这个问题?

感谢您的任何建议!!!

2 个答案:

答案 0 :(得分:1)

您可以在onCreate()中调用它。请参阅官方文档中的here。它说:

Called by the system when the service is first created. Do not call this method directly.
供您参考,您可以看到问题When does Application's onCreate() method get called?If android restarts a Service is onCreate called again?

答案 1 :(得分:1)

尝试从App继承并存储在其中..

public class YourApp extends Application {

private static boolean mFirstRun = false;

public static boolean getFirstRun() { return mFirstRun; }
public static void clearFirstRun() { mFirstRun = false; }

来自您的服务:

if (YourApp.getFirstRun()) 
{
   clearFirstRun();
   // run first time code
}