2017-09-09 3 views
0

응용 프로그램의 시작 부분에 매우 구체적인 코드를 구현해야합니다.응용 프로그램 시작 (액티비티가 아닌)에 액세스하는 방법

즉, 활동 시작 (onCreate() 또는 onStart())이 아니라 응용 프로그램 시작 부분에 있음을 의미합니다.

나는 "MyBaseActivity"라는 기본 활동이 있고 내 모든 활동에서 확장되는 하나의 솔루션을 가지고 있습니다. 이 솔루션은 나에게 좋지 않습니다. 왜냐하면이 솔루션을 통해 각 활동 (내가 언급 한 특정 코드)의 onCreate에서 단 하나의 특정 작업 만 수행 할 수있게되었습니다. 이는 내가 원한 것이 아니기 때문입니다.

나는 모든 활동이 onCreate() func에 따라 다른 작업을 수행 할 수 있기를 바랄 뿐이다. 그리고 위에서 언급 한 특정 코드를 수행 할 수있다.

그 때문에 응용 프로그램의 시작 부분에 액세스해야하거나 다른 해결책이 필요합니다.

감사합니다.

답변

2

Application class, 또는 응용 프로그램 클래스의 서브 클래스, 다른 클래스 전에 인스턴스화됩니다. 응용 프로그램 클래스를 확장해야합니다.

public class AppApplication extends Application{ 
@Override 
    public void onCreate() { 
     super.onCreate(); 
     //Do whatever you want 
    } 
} 

그리고이 AppApplication 클래스는 매니페스트 파일에 포함되어야합니다.

<application 
     android:allowBackup="true" 
     android:name=".AppApplication" 
     android:icon="@mipmap/ic_launcher" 
1

응용 프로그램의 시작 부분에 매우 구체적인 코드를 구현해야합니다.

안드로이드 앱 구성 요소 (활동, 서비스, 브로드 캐스트 리시버)와 응용 프로그램 중 하나가 아직 실행되고 있지 시작 "요청을 얻는다"때마다, 그것은 app_process을 만들어 낸다 (별칭 zygote)의 이름을 your.package.name으로 변경하고 AndroidManifest.xml, 응용 프로그램 인스턴스를 초기화하고 onCreate() 메서드를 호출 한 다음 요청 된 구성 요소를 인스턴스화하고 해당 수명주기 제작 방법 (활동onCreate(), 서비스onCreate() 또는 브로드 캐스트 리시버onReceive()).

Application 클래스의 인스턴스는 앱 프로세스가 종료 될 때까지만 존재할 수 있습니다. 즉, extended Application class 내에 생성 한 모든 클래스 인스턴스는 앱 프로세스가 시스템에 의해 종료 될 때까지 지속됩니다.

예 : 응용 프로그램/패키지 프로세스가 생성 될 때 Understanding the Android Application Class

관련 문제