gpt4 book ai didi

java - 如何在互联网连接上显示通知?

转载 作者:行者123 更新时间:2023-12-01 08:51:28 24 4
gpt4 key购买 nike

当设备连接到互联网时,我必须显示通知。
我需要为此一直运行服务吗?

最佳答案

ConnectivityReceiver.java

public class ConnectivityReceiver
extends BroadcastReceiver {

public static ConnectivityReceiverListener connectivityReceiverListener;

public ConnectivityReceiver() {
super();
}

@Override
public void onReceive(Context context, Intent arg1) {
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null
&& activeNetwork.isConnectedOrConnecting();

if (connectivityReceiverListener != null) {
connectivityReceiverListener.onNetworkConnectionChanged(isConnected);
}
}

public static boolean isConnected() {
ConnectivityManager
cm = (ConnectivityManager) MyApplication.getInstance().getApplicationContext()
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
return activeNetwork != null
&& activeNetwork.isConnectedOrConnecting();
}


public interface ConnectivityReceiverListener {
void onNetworkConnectionChanged(boolean isConnected);
}}

MyApplication.java

public class MyApplication extends Application {

private static MyApplication mInstance;

@Override
public void onCreate() {
super.onCreate();

mInstance = this;
}

public static synchronized MyApplication getInstance() {
return mInstance;
}

public void setConnectivityListener(ConnectivityReceiver.ConnectivityReceiverListener listener) {
ConnectivityReceiver.connectivityReceiverListener = listener;
}}

AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
android:name=".MyApplication"
android:allowBackup="true"
...
<receiver
android:name=".ConnectivityReceiver"
android:enabled="true">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
...
</application>

Activity.class

public class MainActivity extends AppCompatActivity
implements ConnectivityReceiver.ConnectivityReceiverListener {
...
@Override
protected void onResume() {
super.onResume();

// register connection status listener
MyApplication.getInstance().setConnectivityListener(this);
}
...
@Override
public void onNetworkConnectionChanged(boolean isConnected) {
if(isConnected){
Toast.makeText(context, "Internet Connected", Toast.LENGTH_SHORT).show();
}else{Toast.makeText(context, "Internet not Connected", Toast.LENGTH_SHORT).show();}
}}

关于java - 如何在互联网连接上显示通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42374095/

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