#java #android
#java #Android
Вопрос:
Я вызываю метод подключения к checkinternet. Ниже приведен код класса Java, имеющего метод checkinternet.
public class PTs {
private Context context;
public PT(Context context) {
this.context = context;
}
public Boolean checkinternet() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo activeinternet = connectivityManager.getActiveNetworkInfo();
return activeinternet != null amp;amp; activeinternet.isConnected();
}
в то время как я использую оператор if, как показано ниже, для получения статуса Интернета в другом действии.
if (pt.checkinternet()){
//do some task
}
Почему возникает ошибка? может кто-нибудь помочь.
Комментарии:
1. Пожалуйста, покажите, как вы получаете
pt
объект.2. публичный класс StartupActivity расширяет AppCompatActivity { PT pt = new PT(); @Override protected аннулирует onCreate(Bundle savedInstanceState) { //остаток кода для класса.
Ответ №1:
Никогда не создавайте экземпляр действия, службы или поставщика самостоятельно с помощью конструктора. Действие инициализировано неправильно, и поэтому вы не можете вызвать getSystemService()
его.
Варианты исправления этого включают:
-
Переместите этот код в существующее действие, которое правильно запускается платформой, и используйте этот метод только из этого действия
-
Удалите
extends AppCompatActivity
изPT
иcheckinternet()
примитеContext
в качестве параметра
Комментарии:
1. открытый класс PT { общедоступная логическая проверка интернета (контекст context) { ConnectivityManager ConnectivityManager = (ConnectivityManager) getSystemService (CONNECTIVITY_SERVICE); NetworkInfo activeinternet = ConnectivityManager.getActiveNetworkInfo(); возвращает activeinternet != null amp;amp; activeinternet.isConnected(); } с этими исправлениями все еще возникает ошибка в getSystemService. Все, что я оставил упомянуть.
2. Также обновлен вызывающий код как (performanceTweaks.checkinternet(StartupActivity.this))
3. @AnkurJain: Предположительно, вы вызываете
checkinternet()
передonCreate()
вызовомStartupActivity
.4. я очень новичок в этом, если вы сможете предоставить правильный способ кодирования, это будет действительно полезно.
5. возникла проблема, я писал getsystemservice вместо context.getsystemservice. Она работает.