Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Extending Android Application class

When I was searching for a solution to get the error reports from remote device, just like the test flight app in iOS, I found the acra for Android devices here

In the basic set up they have said we need to add some lines in extends Application class.

In my project so far I have not created such a class, when I was searching in SO regarding this, I came over few questions regarding the extends Application class.

I understood that they are saying a Constant class which contains a global variables, have I understood the right way.

In my projects I use to create a class named as Constants, which contains some global variables such as Strings, int, ArrayList and I this class I use to do my api hits and json parsings. Does this class can be used as extends Application.

If it is the same, in the above mentioned link, they have said

override the onCreate() method to add the ACRA init statement 

But so far I have not created a onCreate method in my Constant class. Am I doing the right thing?

like image 525
Siva K Avatar asked Oct 11 '12 07:10

Siva K


People also ask

What class extends creating apps?

Application class is a base class of Android app containing components like Activities and Services. Application or its sub classes are instantiated before all the activities or any other application objects have been created in Android app.

What is the application class in Android?

The Application class in Android is the base class within an Android app that contains all other components such as activities and services. The Application class, or any subclass of the Application class, is instantiated before any other class when the process for your application/package is created.

What is ANR used for in Android?

Application Not Responding (ANR) errors are triggered when the UI thread of the application is not responding for more than 5 seconds. You can read more about ANRs and diagnosing ANRs in the Android documentation. Additionally, Crashlytics can help pinpoint specific problematic threads.

How do you declare an application class in manifest?

If it derives from Application, add the fully qualified (namespace + class name) as the android:name parameter of the application element in your manifest. The documentation says "fully qualified name".


1 Answers

I wouldn't bother trying to merge your Constants class with this class. It isn't worth the effort. Just create a new class that does what is necessary for ACRA. Like this:

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // do the ACRA init here
    }
}

Now you need to make sure that your MyApplication class gets used. So you need to add android:name to the <application> tag entry in your manifest like so

<application
    android:name="fully.qualified.package.name.MyApplication"

Done.

like image 52
David Wasser Avatar answered Dec 28 '22 05:12

David Wasser