gpt4 book ai didi

android - 从 BroadcastReceiver 类调用 Activity 方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:25:12 28 4
gpt4 key购买 nike

我知道我可以做一个内部接收器类来调用接收器中的任何方法

但我的主要 Activity 太大了,做了很多事情。所以我需要一个扩展广播接收器但不是内部类的类。并且可以从我的主要 Activity 中调用一种方法。我不知道这是否可能,但我的 Activity 是一个家庭 Activity 和一个“singleInstance” Activity ,所以也许有了这个细节,有人可以访问我的 Activity 。

如果无法以任何方式将一些 java 代码拆分为多个文件,我的主文件有 600 多行。 (关于信息,我已经有 19 个 java 文件用于我的应用程序的 alpha 版本,所以我尝试拆分它)

最佳答案

动态创建 BroadcastReceiver:

在您的 BroadcastReceiver 类中定义类成员:

YourMainActivity yourMain = null;  

和方法:

setMainActivityHandler(YourMainActivity main){
yourMain = main;
}

从您的 MainActivity 中执行:

private YourBroadcastReceiverClassName yourBR = null;
yourBR = new YourBroadcastReceiverClassName();
yourBR.setMainActivityHandler(this);
IntentFilter callInterceptorIntentFilter = new IntentFilter("android.intent.action.ANY_ACTION");
registerReceiver(yourBR, callInterceptorIntentFilter);

最后,当您的 BR.onReceive 被触发时,您可以调用:

yourMain.methodOfMainActivity();

关于android - 从 BroadcastReceiver 类调用 Activity 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16934425/

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