我希望每次Intent.ACTION_BATTERY_CHANGED被广播时都会调用Broadcastreceiver,这样我就可以跟踪一些数据.
我现在拥有的:
public class ReceiverApplication extends Application {
@Override
public void onCreate() {
// Register Receiver
}
public static BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Start Service to progress data
}
};
}
Run Code Online (Sandbox Code Playgroud)
这很好用直到我使用最近的应用程序"Taskmanager"来刷掉我的一个偏好屏幕或我的主要活动.然后BroadcastReceiver不再被调用.如果我启动其中一个活动,则调用ReceiverApplication的onCreate()并再次开始工作.
我可以通过一直运行空服务来解决这个问题.通过滑动一个活动似乎没有杀死该服务,并且在一段时间后调用onCreate()并重新启动BroadcastReceiver而不做任何事情.这里的问题是我不希望服务一直运行.
那么,如果用户想要的话,我怎样才能在任何能够接收广播的Acitivity或Service之外获得Broadcastreceiver?
我想使用minkowski和来预测两个凸形之间的确切碰撞点.根据我的理解,速度矢量与minkowski和相交的点是我必须沿着矢量移动我的物体的量,所以它们只是触摸(我已经知道它们会碰撞).这是我的意思的一个例子(为简单起见,我只使用了矩形):

我的意思是我可以计算与凸包的每一条线的交点,并且只使用最接近的但是看起来非常低效.我的想法是计算最接近向量的单纯形,但我不知道如何做到最好.我发现了一种算法,它可以计算物体之间的最小距离,或者更精确地计算从minkowski总和到原点的最小距离(http://www.codezealot.org/archives/153).该算法的一部分试图找到最接近原点的单纯形,这是我想做的事情.我试图改变它以满足我的需求,但我没有成功.对我而言,听起来应该有一个非常简单的解决方案,但我对矢量数学并不是那么好.
我希望我的问题可以解决,因为我的英语不太好:D