Merhaba sorunum açıkca şu uygulama içinde gezerken internet bağlantısı koptuğunda bir aktiviteye yönlendirmek istiyorum
Toast mesaja kadar hallettim ancak aktiviteye aktarmada sorun yaşıyorum
MainActivity.java
package com.example.davulgablog.view;

import static android.widget.GridLayout.HORIZONTAL;

import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;
import android.widget.Toast;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager2.widget.ViewPager2;

import com.example.davulgablog.R;
import com.example.davulgablog.adapter.AnasayfaAdapter;
import com.example.davulgablog.adapter.CarouselSliderAdapter;
import com.example.davulgablog.adapter.InternetConnAdapter;
import com.example.davulgablog.databinding.ActivityMainBinding;
import com.example.davulgablog.model.AnasayfaButton;

import java.util.ArrayList;

import jp.wasabeef.blurry.Blurry;

public class MainActivity extends AppCompatActivity {
ActivityMainBinding anasayfa;
AnasayfaAdapter buttonAdapter;
ArrayList<Uri> imageList;
CarouselSliderAdapter carousel;
InternetConnAdapter connect;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
anasayfa=ActivityMainBinding.inflate(getLayoutInflater());
setContentView(anasayfa.getRoot());

connect = new InternetConnAdapter(MainActivity.this);
connect.connectionControl();
if(connect.getBool()){
Toast.makeText(MainActivity.this, "Connection Available", Toast.LENGTH_SHORT).show();
}
}
}
InternetConnAdapter.java
package com.example.blog.adapter;

import static androidx.core.content.ContextCompat.registerReceiver;

import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.os.Build;
import android.view.LayoutInflater;
import android.widget.Toast;

import androidx.annotation.NonNull;

import com.example.davulgablog.R;
import com.example.davulgablog.databinding.NoConnectBinding;
import com.example.davulgablog.view.MainActivity;
import com.example.davulgablog.view.Noconnect;

public class InternetConnAdapter extends AppCompatActivity{
public Boolean bool=false;
Context context;
public InternetConnAdapter(){
super();
}
public InternetConnAdapter(Context context){
super();
this.context=context;
}

public static void checkNetworkInfo(Context context, final OnConnectionStatusChange onConnectionStatusChange){

ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(connectivityManager.getActiveNetwork());
if (capabilities == null){
onConnectionStatusChange.onChange(false);
}
connectivityManager.registerDefaultNetworkCallback(new ConnectivityManager.NetworkCallback(){
@Override
public void onAvailable(@NonNull Network network) {
onConnectionStatusChange.onChange(true);
}
@Override
public void onLost(@NonNull Network network) {
onConnectionStatusChange.onChange(false);
}
});

}
//for android version below Nougat api 24
else {

NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
onConnectionStatusChange.onChange(networkInfo!= null && networkInfo.isConnectedOrConnecting());
}
}
public void connectionControl(){
InternetConnAdapter.checkNetworkInfo(context, new InternetConnAdapter.OnConnectionStatusChange() {

@Override
public void onChange(boolean type) {
if(type){
// Toast.makeText(context, "Connection Available", Toast.LENGTH_SHORT).show();
bool=true;
}else{
bool=false;
Toast.makeText(context, "Connection Not Available", Toast.LENGTH_SHORT).show();
//setContentView(R.layout.no_connect);
Intent ib=new Intent(context.this,Noconnect.class);
startActivity(ib);
set
}
}
});
}
public boolean getBool(){
return bool;
}
public interface OnConnectionStatusChange{

void onChange(boolean type);
}
}


Sorun çözülmüştür. Çözüm olarak kullandığım yöntem
package com.example.davulgablog.adapter;

import static androidx.core.content.ContextCompat.registerReceiver;

import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.os.Build;
import android.os.Handler;
import android.view.LayoutInflater;
import android.widget.Toast;

import androidx.annotation.NonNull;

import com.example.davulgablog.R;
import com.example.davulgablog.databinding.NoConnectBinding;
import com.example.davulgablog.view.MainActivity;
import com.example.davulgablog.view.Noconnect;

public class InternetConnAdapter extends  AppCompatActivity{
public  Boolean bool=false;
Context context;
public InternetConnAdapter(){

}
public InternetConnAdapter(Context context){
this.context=context;
}

public static void checkNetworkInfo(Context context, final OnConnectionStatusChange onConnectionStatusChange){

ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(connectivityManager.getActiveNetwork());
if (capabilities == null){
onConnectionStatusChange.onChange(false);
}
connectivityManager.registerDefaultNetworkCallback(new ConnectivityManager.NetworkCallback(){
@Override
                public void onAvailable(@NonNull Network network) {
onConnectionStatusChange.onChange(true);
}
@Override
                public void onLost(@NonNull Network network) {
onConnectionStatusChange.onChange(false);
}
});

}
//for android version below Nougat api 24
        else {

NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
onConnectionStatusChange.onChange(networkInfo!= null && networkInfo.isConnectedOrConnecting());
}
}
public void connectionControl(){
InternetConnAdapter.checkNetworkInfo(context, new InternetConnAdapter.OnConnectionStatusChange() {

@Override
            public void onChange(boolean type) {
if(!type){
bool=false;
new Handler().postDelayed(new Runnable() {
@Override
                        public void run() {
// Start the main activity after the splash screen duration
                            Intent intent = new Intent(context, Noconnect.class);
context.startActivity(intent);
// finish();
                        }
}, 0);
// Toast.makeText(context, "Connection Not Available", Toast.LENGTH_SHORT).show();
                }
}
});
}
public  boolean getBool(){
return bool;
}
public   interface OnConnectionStatusChange{

void onChange(boolean type);
}
}
Handler oluşturup 5sn bekletip yönlendirmek oldu.