我计算了由信标定位的用户,然后想要绘制位于画布上的用户 我这样做,但背景将继续被称为 didRangeBeaconsInRegion 它是循环,它将继续检测区域信标导致后台将继续调用。 这是我计划的一部分
DrawView.java
public class DrawView extends View {
ReceiveLocate activity;
Bitmap bp,bg;
Paint paint;
public DrawView(Context context){
super(context);
this.activity = (ReceiveLocate) context;
paint = new Paint();
paint.setColor(Color.BLACK);
paint.setTextSize(25);
bp = BitmapFactory.decodeResource(getResources(),
R.drawable.greendot1);
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawText("座標 : (" + activity.X+", "+activity.Y+")", 5, 30,
paint);
canvas.drawCircle(activity.X, activity.Y, 10, paint);
System.out.println("當前座標 = ("+activity.X+", "+activity.Y+")");
}
}
Main2Activity.java
public class Main2Activity extends Activity implements BeaconConsumer {
protected static final String TAG = "Main2Activity";
private BeaconManager beaconManager =
BeaconManager.getInstanceForApplication(this);
我尝试直接在Main2Activity.java中编写,但调用 extends View 和 extend Activity 是不同的。如何改善背景一直被称为问题?
答案 0 :(得分:1)
如果您不希望在应用不在前台时获得测距回调,您可以执行以下两项操作之一:
在您的Activity中实现onPause()
方法,并在那里停止测距,然后在您的Activity中实现onResume()
方法并在那里重新开始。
您可以使用BackgroundPowerSaver类,如下所述:
https://altbeacon.github.io/android-beacon-library/battery_manager.html。默认情况下,它仍然会在后台每5分钟进行一次测距,但您可以通过调用beaconManager.setBackgroundBetweenScanPeriod(Long.MAX_VALUE);