Anonymous
Никто не знает что ли?
Anonymous
Ауу
Pavel
Anonymous
Я знаю через че парсить. Я не знаю как взять data-key
Pavel
Data key это атрибут в чем проблема сделать селектор по аттрибуту
Anonymous
doc.select(div.data-key)?
Konstantin
Mike
Anonymous
Почему?
Mike
Почему?
тут про андроид-разработку, а не про парсинг XML
Max
всем привет, подключал кто-нибудь свой ведроид к intellij Idea? может подскажет кто-нибудь, что у меня не так, все дрова, вроде, поставил, компутер видит, режим разработчика стоит, а сама иде не хочет
Mike
Mike
Alexander
Всем привет, тут такая проблема:
При использовании retrofit, при запросе по http вылетает onFailure, причем не на всех телефона, вот такой вот Throwable пишет
Alexander
Alexander
в чем может быть проблема и как её устранить?
Алексей
ну нужно добавить разрешение для использования CLEARTEXT
Алексей
там же все написано?
Alexander
это и есть строчка в манифесте: android:usesCleartextTraffic="true"?
Anonymous
Всем привет. Кто нибудь знает как в гредле sourceSet сделать exclude папки, чтобы Котлин не собирал файлы оттуда?
Anonymous
Здравствуйте. Хочу реализовать вход по номеру телефона на Firebase . Там просят хеш сертификата, можно ли получить его где-то ещё кроме cloud platform google ?
Anonymous
Я? ) Это ведь тоже разработка под андроид )
Anonymous
✙
На значок вопроса если нажать там должна быть инфа что это такое
nonentity
привет здорова. посоветуйте либу или вообще любую имплементацию для sortable on drag listview. чтобы все дефолтно выглядело и быстро писалось
Mike
Anonymous
Там написано что этот хеш можно получить на cloud.google.com , но для регистрации нужна банковская карточка , которой увы нет
nonentity
nonentity
ничего нормального
nonentity
ну можно скачать
nonentity
типа опенсорс и взять оттуда?
✙
И если что, инструкции есть как этот отпечаток получить через keytool
Anonymous
nonentity
nonentity
лол
nonentity
но спасибо
✙
✙
И все
✙
Это не в Гугл клауд
Сыктывкариум
Вопрос в продолжении вчерашней темы про асинхронность.
Как я понял, основная проблема асинк-таска в том, что он содержит ссылу на активность и при пересоздании активности получается утечка памяти и неправильная работа. И советуют тут юзать тредпул и екзекуторс.
Но если мне надо после выполнения задачи что-то вернуть в активность, то я и так прередам её в создаваемый тред? И если активность пересоздастся, то будет таже самая проблема, что и с асинк-таском. Разве нет?
Sergey F
Сыктывкариум
читай теперь про mvp
Читал. Таже самая проблема. Если активити передаётся для колбэка из потока или презентера - будет та же самая утечка памяти, что и у асинк-таска.
Сыктывкариум
ну как я понимаю.
Sergey F
Sergey F
Сыктывкариум
Ну да. Но презентер же хранит в себе ссылку на активити?
Сыктывкариум
И при пересоздании активити в презентере будет ссылка на старую активити
Сыктывкариум
Разве что делать презентер синглтоном и при пересоздании активити обновлять ссылку в презентере
Alexey
Sergey F
Сыктывкариум
А как презентер выживет?
Ну в целом да, он должен быть уничтожен. Но если в нём запущен асинхронно какой-то процесс, и презентер ждё трезультат, то он не будет уничтожен?
Сыктывкариум
и следовательно активити тоже.
Sergey F
Sergey F
или как сделать презентер своими руками
Сыктывкариум
как сделать презентер я знаю. я не совсем понимаю, как оно в дальнейшем будет жить при условиях выполнения долгой задачи в другом потоке
Сыктывкариум
На хабре нашел статью.
Там пишут:
На основании анализа сложился список требований к решению:
1) View должна привязываться к уже имеющемуся Presenter при смене конфигурации
2) После привязывания View к уже имеющемуся Presenter
3) Presenter должен уметь(при необходимости) жить независимо от того, кто на него подписан или от него отписался
Сыктывкариум
при таком раскладе да, проблемы нет.
Alexey
Sergey F
Sergey F
Сыктывкариум
Sergey F
какой ты молодец
Alexey
Сыктывкариум
просто как бы тут говорили, что асинк-таски это плохо из-за утечек памяти, но получается, что если просто юзать тредпулы или что-либо дргуое, где колбэк будет сам активити - то проблему это не решит.
Сыктывкариум
надо делать презентер, который будет жить и работать независимо от активити
Alexey
Ну да. МОжет ещё когда-то, но самое частое - поворот экрана
Можно вызывать асинк таск во фрагменте с setRetainInstance(true);. Повороты экрана будут корректно обрабатываться и асинк таск подхватываться.
public class MyActivity extends Activity {
private MyFragment fragment;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
fragment = new MyFragment();
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment, fragment)
.commit();
}
...
}
public class MyFragment extends Fragment {
private static WeakReference<MyAsyncTask> asyncTaskWeakRef;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
startNewAsyncTask();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
}
private void startNewAsyncTask() {
if (!isAsyncTaskPendingOrRunning()) {
MyAsyncTask asyncTask = new MyAsyncTask(this);
asyncTaskWeakRef = new WeakReference<>(asyncTask);
asyncTask.execute();
}
}
private boolean isAsyncTaskPendingOrRunning() {
return asyncTaskWeakRef != null &&
asyncTaskWeakRef.get() != null &&
!asyncTaskWeakRef.get().getStatus().equals(AsyncTask.Status.FINISHED);
}
@Override
public void onBackPressed() {
if (isAsyncTaskPendingOrRunning()) {
asyncTaskWeakRef.get().cancel(true);
}
}
private class MyAsyncTask extends AsyncTask<Void, Void, Void> {
private WeakReference<MyFragment> fragmentWeakRef;
public AsyncTaskCheckApps(MyFragment fragment) {
this.fragmentWeakRef = new WeakReference<>(fragment);
}
@Override
protected Void doInBackground(Void... voids) {
...
}
@Override
protected void onPreExecute() {
...
}
@Override
protected void onPostExecute(Void v) {
super.onPostExecute(v);
...
}
@Override
protected void onProgressUpdate(Void... voids) {
...
}
}
}
Ivansuper
И пренебрегали пастбином
Alex
Зато из коробки)
Сыктывкариум
Ну простого способа нет, а асинктаск удобно и легко. Не безопасно, это да.
Nikita
Эфир
Ну наконец-то
Max
приложение запускается и сразу же вылетает, в чем причина может быть?
Max
не знал о таком, понял
d
Max
может ли отсутствие возможности создания папки на устройстве быть причиной того, что приложение не запускается?