android - 如何从 broadcastReceiver 回调访问 MainActivity

标签 android android-activity broadcastreceiver

我是 Android 开发的新手,并设法在 StackOverflow 上获得了这个远读问题和答案。谢谢大家。

我想出了一个我无法弄清楚的问题。我看到过类似的问题,但我不清楚答案。请帮我解决这个问题。

我想从另一个类调用我的主要 Activity 的方法。当我尝试调用该方法时,应用程序崩溃了。这是代码:

在类文件上:

public class AlarmReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        MainActivity MainActivity = new MainActivity();
        MainActivity.ligaInternet();
    }
}

在主 Activity 文件上:

protected void ligaInternet() {
    ConnectivityManager connMgr = (ConnectivityManager)
          getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
    if (networkInfo != null && networkInfo.isConnected()) {
        String urlText="http://www.regiprof.com/regiprof_sms.php";
        String stringUrl = urlText.toString();
        new DownloadWebpageTask().execute(stringUrl);
    } 
}

如何调用 ligaInternet() 函数?

最佳答案

你可以试试

MainActivity currentActivity = ((MainActivity)context.getApplicationContext()).getCurrentActivity();
currentActivity.ligaInternet();

关于android - 如何从 broadcastReceiver 回调访问 MainActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32131292/

相关文章:

android - BroadcastReceiver.onReceive 不为 PHONE_STATE 调用

android - RecyclerView页面滚动的实现方法

android - 通过 Intent 共享后删除文件

android - 单击 FAB 导航到 fragment (导航架构组件)

java - 无法触发onActivityResult方法

android - 网络小区更改时未调用 ACTION_PHONE_STATE_CHANGED

android - 以编程方式注册广播接收器

android - 建立Android项目失败与gradle

android - Firebase Job Dispatches 不会触发我的服务类

android - 无法设置设备政策 Android 手机