我有一个应用程序正在检查服务中设备的位置以及它是否已进入许多预定义区域之一。当活动打开时,服务具有对活动的引用,并且当活动被放入后台时,onPause将服务的引用设置为null。当活动引用为null时,将向活动发送带有pendingIntent的通知。
我遇到的问题是,在点击通知项后重新打开活动时,未调用onCreate或onRestoreInstanceState方法,并且调用的onResume没有对区域对象的引用已添加到pendingIntent。
我可以通过在服务中添加一个指示是否附加活动的标志而不是将活动设置为null来使事情正常工作。这允许调用活动方法来更新指示已经输入定义区域的视图,但是在调用方法来更新视图ex之后,该方法似乎存在问题。 setText(“...”)不会调用其他方法。这是通过移动方法调用来解决的,但像这样的代码可能会导致更多问题,我认为会有更好的方法。
我还应该提一下,该活动有一个singleTask的launchMode,以确保我获得已经运行的实例。
<activity android:name=".activities.MyActivity" android:launchMode="singleTask" />
有没有更好的方法可以通过通知将数据传回活动?