Форум программистов, компьютерный форум CyberForum.ru

Поймать UncaughtExceptions и запустить ErrorActivity - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Выключение экрана по нажатию кнопки http://www.cyberforum.ru/android-dev/thread1811202.html
Необходимо выключить экран по нажатию кнопки. Пробовал KeyguardManager, но метод KeyguardLock зачеркивается в android studio. Пробовал DevicePolicyManager, но метод .lockNow() привел к аварийном завершению программы. И еще много чего... Короче говоря, помогите чем может....
Программирование Android Передача объекта обратно в главный поток из другого потока Добрый день. У меня ест фрагмент в котором я запускаю новый поток, после этого я хочу вернуть объект из этого потока в главный поток, как это лучше сделать? public class IFragment extends Fragment { private void getRecentlyTag(){ new Thread(){ @Override public void run() { http://www.cyberforum.ru/android-dev/thread1811171.html
Операции с фрагментами Программирование Android
Если вызвать транзакцию remove для текущего фрагмента в контейнере. То вызовется ли у этого фрагмента метод onDestroy? Добавлено через 1 минуту Если вызвать replace то у текущего фрагмента в контейнере вызовется onDestroy а у нового при добавлении onCreate и остальные методы по порядку так? Добавлено через 1 минуту А если я добавил транзакцию в BackStack то при вызове popBackStack у меня...
Взаимодействие базы данных на SQLlite и Фрагмента и RecyclerView Программирование Android
Доброго времени суток. Суть проблемы в следующем: есть база с некоторым набором данных, есть фрагмент, куда внедрен RecyclerView для их отображения. Подтянуть данные из таблицы при загрузке - никаких проблем. Но как правильнее сделать обновление (вероятнее всего RecyclerView) при добавлении и удалении данных?
Программирование Android Запуск приложений с Vulkan API на Андроид http://www.cyberforum.ru/android-dev/thread1811043.html
Доброго времени суток, форумчане! С выходом нового графического API Vulkan компания Samsung продемонстрировала работу демки Protostar на своём флагманском Galaxy S7, и побещали поддержку нового интерфейса для 6-й версии андроида. Хотя его должны сделать доступным только в 7-й. На Github'е можно найти некоторые примеры программ с исходниками, всё вроде нормально собирается, но на устройстве при...
Программирование Android Как вытащить файл из эмулятора? Сгенерировал в приложении и вроде даже записал файл wav. Теперь не знаю, как его вытащить для анализа. На телефоне без рута папки приложения не видно. А на эмуляторе подозреваю, что всё лежит в img архивах или образах. Alkogol с этим не хочет работать. Виндовс предлагает записать на DWD. Чем распаковать img из эмулятора? А может в самом Студио что то встроено для этого? подробнее

Показать сообщение отдельно
AlexV1
-2 / 0 / 0
Регистрация: 05.04.2016
Сообщений: 33

Поймать UncaughtExceptions и запустить ErrorActivity - Программирование Android

21.09.2016, 14:34. Просмотров 212. Ответов 7
Метки (Все метки)

Привет!

Вот уже неделю как не могу решить одну задачку.
Обработать необработанные (непойманные) исключения и вызвать мою ErrorActivity, в которой я попрошу пользователя прислать мне StackTrace.
Ловлю в своем MyApplication классе, чтобы ловить не только в Activity, но и в любых модулях, потоках, службах и т.п., то есть в пределах всего приложения.
Ловить получается. Не получается при этом запустить мою ErrorActivity - программа в конце handleUncaughtException просто закрывается.
При этом, если запускать активити из OnCreate MainActivity, то все OK, запускается, из-за чего я полагаю, что запуск ErrorActivity написан корректно.

Класс MyApplication

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class MyApplication extends Application {
 
    public static Context appContext; // Link to ApplicationContext
 
    @Override
    public void onCreate() {
 
        appContext = getApplicationContext();
 
        // Удаляем обработчик, чтобы рекурсивно не срабатывал, если далее 
        Thread.setDefaultUncaughtExceptionHandler(null); исключение возникнет
 
        // Setup handler for uncaught exceptions.
        Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
            @Override
            public void uncaughtException(Thread thread, Throwable e) {
                handleUncaughtException(thread, e);
            }
        });
 
        super.onCreate();
    }
 
    public static void handleUncaughtException(Thread thread, Throwable e) {
 
        Context context = MyApplication.appContext;
 
        Intent intent = new Intent();
        intent.setAction ("com.example.alexv.testapp.err");
        intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK); // required when starting from Application
        context.startActivity (intent);
    }
}
MainActivity

Java
1
2
3
4
5
6
7
8
9
10
11
12
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        int i = Integer.parseInt("23,222.345"); // имитация исключения
 
    }
}
Манифест

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.alexv.testapp">
 
    <application
        android:name="MyApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
 
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
        <activity android:name=".ErrorActivity"
            android:windowSoftInputMode="stateHidden">
            <intent-filter>
                <action android:name="com.example.alexv.testapp.err" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
 
    </application>
 
</manifest>
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru