当前位置: 首页 > 知识库问答 >
问题:

广播接收机发送消息时未显示布局

呼延原
2023-03-14

我有一个仪表板活动有3个片段,最初它是调用一个家庭片段,我想显示一个布局当我收到一个互联网的广播没有连接,但我的布局总是显示空指针异常...一开始互联网布局的可见性消失了。

当我设置我的可见性,然后它显示和重叠我的片段设计,但一旦设置它的可见性消失,然后想要显示它总是显示错误

为什么会发生这种情况

checknet.java


 DashBoardActivity dashBoardActivity = new DashBoardActivity();

    public void onReceive(Context context, Intent intent) {
        try {
            if (isOnline(context)) {
               dashBoardActivity.checkNet(true);
                Log.e("checkInternet", "App is back to Online  ");

            } else {

                dashBoardActivity.checkNet(false);
                Log.e("checkInternet", "Conectivity Failure  !!! ");
            }
        } catch (NullPointerException e) {
            e.printStackTrace();
        }
    }


    private boolean isOnline(Context context) {

        try {
            ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo netInfo = cm.getActiveNetworkInfo();
            
            return (netInfo != null && netInfo.isConnected());
        } catch (NullPointerException e) {
            e.printStackTrace();
            return false;
        }

    }
}




   public  void checkNet(boolean value) {

        if (value) {
            Log.e("Connected", "Yes ");
             
        }
        else {
            Log.e("Connected", "NO ");
            something_wrong_LL.setVisibility(View.VISIBLE);
           
}

           


dashboard.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="DashBoardActivity">





            <LinearLayout
                android:id="@+id/something_wrong_LL"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:gravity="center"
                android:visibility="gone"
                app:layout_constraintBottom_toTopOf="@+id/card1"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" >


                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:fontFamily="@font/nunito"
                    android:text="somethingWrong"
                    android:textColor="@color/gray_2"/>

                <Button
                    android:id="@+id/retry_BT"
                    android:layout_marginTop="20dp"
                    android:layout_width="wrap_content"
                    android:layout_height="35dp"
                    android:text="RETRY"
                    android:background="@drawable/blue_background_bg"
                    android:textColor="@color/whiteColor"/>

            </LinearLayout>






    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:visibility="visible"
        app:layout_constraintBottom_toTopOf="@+id/card1"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"/>


    <com.google.android.material.card.MaterialCardView
        android:id="@+id/card1"
        android:layout_width="0dp"
        app:contentPadding="0dp"
        android:layout_height="?attr/actionBarSize"
        android:layout_alignParentBottom="true"
        android:theme="@style/Theme.MaterialComponents.Light.NoActionBar"
        app:cardElevation="16dp"
        app:cardPreventCornerOverlap="false"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">



       .
       .
       .
       .
       .
       .
       .
        
    </com.google.android.material.card.MaterialCardView>


</androidx.constraintlayout.widget.ConstraintLayout>




共有1个答案

金秦斩
2023-03-14

https://developer.android.com/guide/components/fundements#activatingcomponents

BroadcastReceiver和Activity都是应用程序组件,因此希望将它们激活为intent

活动从onreceive()内部调用到startactivity()

public void onReceive(Context context, Intent intent) {
        try {
            Intent activityIntent = new Intent(context, TestActivity.class);
            boolean isOnlineState = isOnline(context);
            
            // to execute checkNet()
            intent.putExtra("checkInternet", isOnlineState);

            if (isOnlineState) {
                Log.e("checkInternet", "App is back to Online  ");
            } else {
                Log.e("checkInternet", "Conectivity Failure  !!! ");
            }

            context.startActivity(activityIntent);
        } catch (NullPointerException e) {
            e.printStackTrace();
        }
    }
 类似资料:
  • 我是android新手。我的项目有一个活动和一个服务。我的服务有一个广播接收器,而活动有一个广播发送器,它在PeriodSender方法中。动态地,当我注册接收者时,在服务开始时它不会调用,但是如果我在几分钟后发送了一些东西,它就会调用。但是我想在清单中注册它,我已经在清单中包含了接收方的详细信息,但是接收方没有调用。我的接收方类名是MyReceiver21,意图操作是My_ACTION1。实际上

  • 通常在服务器发送一些数据时发生Message事件。服务器发送到客户端的消息可以包括纯文本消息,二进制数据或图像。无论何时发送数据,都会触发函数。 此事件充当客户端对服务器的耳朵。每当服务器发送数据时,都会触发事件。 以下代码段描述了打开Web Socket协议的连接。 还需要考虑使用Web套接字可以传输哪些类型的数据。Web套接字协议支持文本和二进制数据。就Javascript而言,文本指的是字符

  • 我有1个活动和1个普通类,其中活动1接收消息,普通类发送消息。如何实施: 在活动一中。班 在Ordinary.class 如何发送空消息(1)的代码?

  • 我一直在开发一个简单的python套接字聊天室,客户端和服务器可以在其中相互发送消息。我遇到的问题是服务器和客户端一次只能发送一条消息。我希望它能像任何其他聊天室一样工作,在那里我可以在发送消息时收到消息,任何帮助都会有很大帮助

  • 遇到WP插件问题,请联系表格7。当我填写表格并提交时,我收到一条成功消息,说明它已发送,但我没有在电子邮件中收到它。 邮件不在我的垃圾邮件中,我只在输入邮件时才收到邮件,邮件被发送到!? 它要发送的电子邮件是一个交换帐户。我可以通过WP后端上的联系人表单提交来查看电子邮件。但是我想解决这个问题。 类型 邮件 致:myname@company.com 发件人:网站 主题:挑战 我还检查了网站主机,他