android 活动类对象,java - Android-完成startActivity后,属于MainActivity的类对象与子活动不匹配 - 堆栈内存溢出...

好的,我认为您应该重构一下。 的确,您创建了2个不同的graphactivity实例。 您不需要第一个。

您可以对侦听器使用单例,如下所示:

1使BLEConnection为单例:

public class BLEConnection {

private static BLEConnection singletonInstance = new BLEConnection();

private BLEConnection() {} //constructor cannot be called from outside

public static BLEConnection getInstance() {

return singletonInstance;

}

(... your Stuff here)

}

现在,BLEConnection将保留在内存中,如果您调用,则始终获得相同的实例

BLEConnection bleconnection = BLEConnection.getInstance();

从应用程序中的任何位置。

2创建一个侦听器界面:

public interface BLEConnectionListener {

void statusUpdated(String newStatus);

//you can write more functions here. Every activity from step 3 has to implement them

}

3使您的活动实现界面:

public class MainActivity implements BLEConnectionListener {

public void statusUpdated(String newStatus) {

//do your thread thing here if you want to...

}

}

public class GraphActivity implements BLEConnectionListener {

public void statusUpdated(String newStatus) {

//do graph stuff here

}

}

4通知BLEConnection有关接口的信息:

onResume / onPause中的MainActivity和GraphActivity:

public void onResume() {

// bla

BLEConnection bleConnection = BLEConnection.getInstance();

bleConnection.addListener(this);

}

public void onPause() {

// bla

BLEConnection bleConnection = BLEConnection.getInstance();

bleConnection.removeListener(this);

}

更新BLEConnection

public class BLEConnection {

private ArrayList listeners = new ArrayList();

public void addListener(BLEConnectionListener listener) {

if (!listeners.contains(listener)) {

listeners.add(listener);

}

}

public void removeListener(BLEConnectionListener listener) {

if (listeners.contains(listener)) {

listeners.remove(listener);

}

}

public void forwardStatusUpdate(String statusString) {

for (BLEConnectionListener listener: listeners) {

listener.statusUpdated(statusString);

}

}

}

我希望这是可以理解的。 在BLEConnection中,您现在可以调用

forwardStatusUpdate("Connected");

通知所有监听者(=活动)状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值