0
현재 활동에 도달하려고합니다. 아래의 코드는 다른 예제에서 가져온 것입니다. 편집 후 현재 활동의 정확한 이름이 있습니다. 하지만 거기에서 실제 인스턴스를 얻으려면 어떻게해야합니까?클래스 이름에서 인스턴스 가져 오기
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
// get the info from the currently running task
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
ComponentName componentInfo = taskInfo.get(0).topActivity;
// this is the class-name
componentInfo.getClassName();
고맙습니다, 마커스 당신은에서는 MyApplication의 활동의 인스턴스를 저장 할 수 있습니다
이 코드를 실행하는 클래스는 Context 유형이며, 이미 Context에서 파생 된 Activity 일 가능성이 큽니다. "this"가 현재 활동의 인스턴스가 아닌 이유는 무엇입니까? –
실제로, myApplication (응용 프로그램을 확장)에서 현재 활동에 대한 참조를 반환하므로 활동 대신 도우미 클래스에서 사용할 수 있습니다. –
그건 좋은 생각 같지는 않습니다. 액티비티는 일시적이므로 실제 컨텍스트에서 실행되지 않는 한 한 문에서 다음 문으로 넘어 가지 않도록해야합니다. 나는 당신이 다른 클래스에 액세스하고있는 메소드/데이터를 분석 할 필요가 있다고 생각합니다. 평생 동안 당신은 더 많은 제어를 할 수 있습니다. 아마도 서비스 나 (더 논쟁의 여지가있는) 싱글 톤입니다. –