N
N3cron
Fortgeschrittenes Mitglied
- 1
Hallo zusammen. Ich bin noch nicht so gut im Coden. Hoffe Ihr könnt mir da weiter helfen. Und zwar habe ich mir ein SplashScreen gebaut und dazu soll ein Broadcastreceiver zuhören.
Mein Problem besteht darin.
Broadcast soll nur beim Start der app zuhören. Im moment startet er die App selber sobald man wifi zb aus ein schaltet.
Schreinbar hört er auch nicht auf mein unregister. Wie muss ich das ganze umbauen?
Mein Problem besteht darin.
Broadcast soll nur beim Start der app zuhören. Im moment startet er die App selber sobald man wifi zb aus ein schaltet.
Schreinbar hört er auch nicht auf mein unregister. Wie muss ich das ganze umbauen?
Code:
onCreate ........
final WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(true);
}
BroadcastReceiver MyBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
final ConnectivityManager manager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkRequest.Builder builder;
builder = new NetworkRequest.Builder();
//set the transport type do WIFI
builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
manager.requestNetwork(builder.build(), new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(Splashscreen.this, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
finish();
}
}, SPLASH_TIME_OUT);
try {
} catch (Exception e) {
e.printStackTrace();
}
// Connectet dann nicht!?
// manager.unregisterNetworkCallback(this);
}
});
}
}
};
@Override
protected void onResume() {
registerReceiver(MyBroadcastReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
super.onResume();
}
@Override
protected void onPause() {
try {
unregisterReceiver(MyBroadcastReceiver);
} catch (IllegalArgumentException e) {
if (e.getMessage().contains("Receiver not registered")) {
} else {
throw e;
}
}
super.onPause();
}
}