我想在 Android 上试验 iBeacon。看起来 AltBeacon 是最好的工具。我读到如果我将我的应用程序的应用程序子类化到this,即使应用程序随后被杀死,我也可以使我的应用程序工作。
如果我想让我的应用仅在用户登录时进行监控怎么办?应用程序将在每次启动应用程序时运行,不是吗?登录后如何在应用程序中运行 BootstrapNotifier,如果用户未登录则不运行它?
@Override
protected void onPostExecute(final Boolean success) {
if (success) {
//algorithm to make altbeacon run in the background, even after the app killed
} else {
//if failed
}
}
因此,这是建议的解决方案:
public class BeaconReferenceApplication extends Application implements BootstrapNotifier {
// OTHER CODE
public void onCreate() {
super.onCreate();
if (loggedin) {
BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
Region region = new Region("backgroundRegion", null, null, null);
regionBootstrap = new RegionBootstrap(this, region);
BeaconManager.getBeaconSimulator()).createTimedSimulatedBeacons();
}
}
// OTHER CODE
}
public class LoginACtivity {
// OTHER CODE
public void onClick {
if (username == TRUE && password == TRUE) {
// SINCE THE USER LOGGED IN, HOW DO I MAKE MY APP TO START ALWAYS SCAN EVEN AFTER REBOOTING AS LONG THE USER ISN'T LOGGING OUT?
}
}
// OTHER CODE
}
public class MainActivity {
// OTHER CODE
private void logout {
// SINCE THE USER CLICK LOG OUT BUTTON, HOW DO I MAKE MY APP TO STOP SCANNING EVEN AFTER REBOOTING UNTIL THE USER LOGGING IN AGAIN?
}
// OTHER CODE
}
该代码是否会保证我的应用程序仅在用户登录时始终扫描信标,即使在重新启动并且应用程序未运行后也是如此?