Я хочу отобразить индикатор выполнения, который загружается при подключении к Интернету на экране логотипа. Я использую ниже класс, чтобы проверить подключение к Интернету:Отображение рабочего колеса на главном экране при подключении к Интернету [Android]
public class AppStatus {
public boolean isNetworkAvailable(final Context context) {
final ConnectivityManager connectivityManager = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE));
return connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo().isConnected();
}
}
Код экрана с индикатором хода является:
public class logo_activity extends AppCompatActivity {
private ProgressBar mProgress;
private int mProgressStatus = 0;
private Handler mHandler = new Handler();
private AppStatus con = new AppStatus();
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_logo_activity);
mProgress = (ProgressBar) findViewById(R.id.progressBar);
new Thread(new Runnable() {
public void run() {
if (con.isNetworkAvailable(getApplicationContext()))
{
mProgressStatus += 10;
//user authentication in background.
}
else {
mProgressStatus +=10;
// Display an alert dialog box to connect to internet by launching into settings activity.
}
// Update the progress bar
mHandler.post(new Runnable() {
public void run() {
mProgress.setProgress(mProgressStatus);
}
});
}
}).start();
}
}
Проблемы я столкнулся в том, что диалоговое окно с предупреждением не отображается и когда я запускаю деятельность в настройки и выхожу без включения Интернета, экран застревает только при загрузке экрана. Также может кто-то, пожалуйста, написать для него метод asynctask. Кажется, я не могу обойти это.
Спасибо.
Так что же мне делать? Я проверю tut на async-задачу. Должен ли я использовать async-задачу для такой задачи? –
@KavachChandra Задачи, которые слишком долго выполняются (например, доступ в Интернет), не должны запускаться в потоке пользовательского интерфейса, или вы увидите задержки на экране. вместо этого вы должны запускать их асинхронно. , связанный с потоками (concurency), является довольно сложной задачей, поэтому андроид предоставляет предустановленные классы, такие как AssyncTask и FutureTask, для упрощения параллелизма. каждый раз, когда вы асинхронны, вам лучше использовать AssyncTask. –
@KavachChandra плюс принять мой ответ, если это вам помогло. –