检查监听器是否运行

时间:2010-07-16 10:08:59

标签: android

我有启动加载程序监听器。但是在用户安装应用程序之后,我的监听器直到第一次启动才开始。有没有办法检查我的听众是否在跑?

2 个答案:

答案 0 :(得分:1)

如果您添加了android.intent.action.BOOT_COMPLETED的接收器,将在引导完成后进行广播。

安装应用程序后将无法执行,并且我无法在安装后自动启动应用程序,用户必须明确单击它。

重启你的手机,如果你听到了正确的听众,它就可以了。要检查可能会向侦听器添加一些代码,可能应该启动ServiceActivity或引发Toast

答案 1 :(得分:0)

您不一定能完全按照自己的意愿行事,但是您可以为广播接收器添加额外的意图过滤器,ACTION_SCREEN_OFF和ACTION_SCREEN_ON,然后您可能会在关闭手机之前收到一些广播,因此您的应用是能够在重新启动设备之前首次安装后运行。

<receiver android:name=".screenOnOffReceiver">
                                <intent-filter>
                        <action android:name="android.intent.action.SCREEN_ON" />
                    </intent-filter>
                                <intent-filter>
                        <action android:name="android.intent.action.SCREEN_OFF" />
                    </intent-filter>
                </receiver>

然后第一次运行您的应用时,您可以将某些内容保存到sharedPreferences,例如

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences();
SharedPreferences.Editor editor = pref.edit();

editor.putBoolean("hasRun", true");
editor.commit();

每次接收器运行onReceive(...)时,它都可以执行以下操作:

boolean hasRun pref.getBoolean("hasRun", false);
if (!hasRun){
//do code here
}

这绝对不是一个有保障的解决方案,但它最有可能奏效。