使用this.getApplicationContext();多个应用程序类

时间:2018-04-12 11:47:47

标签: android android-manifest android-context android-application-class

在我的应用程序中,我需要将位置存储到firebase,因此我使用两个位置类作为应用程序,因为我需要存储两个不同实体的位置

第一个应用类

public class FirstApplicationClass  extends MultiDexApplication implements  GoogleApiClient.ConnectionCallbacks,
    GoogleApiClient.OnConnectionFailedListener,
    LocationListener{ 
}

第二个应用程序类

public class SecondApplicationClass extends FirstApplicationClass implements GoogleApiClient.ConnectionCallbacks,
    GoogleApiClient.OnConnectionFailedListener,
    LocationListener {
}

下面是manifest.xml代码

<application
    android:name=".location.SecondApplicationClass"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"

我需要使用this.getApplicationContext();在这两种情况下,在我使用第二个应用程序类的第二种情况下,我能够使用this.getApplicationContext();来自具体活动,即

mSecondApplicationClass = (SecondApplicationClass) this.getApplicationContext();

并能够存储位置。 我不知道如何使用this.getApplicationContext();第一个申请类,即

mFirstApplicationClass = (FirstApplicationClass) this.getApplicationContext();

我无法实现这个

1 个答案:

答案 0 :(得分:0)

在Android应用中,ApplicationContext 唯一

ApplicationContextFirstApplicationClassSecontApplicationClass之间没有区别。

AndroidManifest.xml文件中,您在此行中引入了SecondApplicatoinClass作为应用的应用类:

  

机器人:名称=&#34; .location.SecondApplicationClass&#34;

因此,您的FirstApplicationClass未作为应用的应用类引入,而您无法获得ApplicationContext

将您的AndroidManifest.xml代码更改为此代码,您就可以在ApplicationContext中获得FirstApplicationClass

<application
android:name=".location.FirstApplicationClass  "
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"

然后你可以在这两种情况下使用ApplicationContext