gpt4 book ai didi

java - 关于 didRangeBeaconsInRegion

转载 作者:行者123 更新时间:2023-12-02 12:05:00 25 4
gpt4 key购买 nike

我计算了通过信标定位的用户,然后想绘制通过 Canvas 定位的用户我这样做了,但后台将继续调用,因为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 Viewextend Activity是不同的。如何改善后台被称为的问题?

最佳答案

如果您不想在应用程序不在前台时获得测距回调,您可以执行以下两种操作之一:

  1. 在您的 Activity 中实现一个 onPause() 方法,并在那里停止测距,然后在您的 Activity 中实现一个 onResume() 方法并在那里重新开始测距.

  2. 您可以按照此处所述使用BackgroundPowerSaver 类: https://altbeacon.github.io/android-beacon-library/battery_manager.html 。默认情况下,它仍会每 5 分钟在后台进行一次测距,但您可以通过调用 beaconManager.setBackgroundBetweenScanPeriod(Long.MAX_VALUE);

    来自定义此设置,使其永远不会有效。 >

关于java - 关于 didRangeBeaconsInRegion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46956295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com