2011-02-02 5 views
0

내 활동이 어떤 작업인지에 관계없이 앱이 다시 시작될 때 실행되도록하는 일련의 명령이 있습니다. 모든 사람에게 onRestart()을 넣어야한다는 것을 알고 있습니다.모든 활동에서 사용할 수있는 기능을 만드는 방법이 있습니까?

어떤 활동이 있더라도 상관없이 동일한 명령 세트이므로 모든 기능을 단일 명령으로 참조 할 수있는 방법이 있습니까? 명령을 복사하여 각 onRestart() 처리기에 붙여 넣는 것이 더 나을 것 같습니다. 명령 집합을 변경해야하는 경우 작업이 훨씬 줄어 듭니다.

답변

1

코드에 따라 몇 가지 옵션이 있습니다.

정적 함수로 도우미 클래스에 넣을 수 있습니다. public static void doWork() { .. } 무엇을 하든지 활동에 의존하지 않는 한 작동하지 않아야합니다. 일반적으로 Context처럼 필요한 부분 만 전달하면됩니다.

또는 Activity을 자신의 클래스 인 MyActivity으로 확장하고 onResume에 작업을 배치 할 수 있습니다. 그런 다음 실제 활동 각각에 대해 MyActivity을 확장하십시오. super.onResume()에 전화하면 해당 작업이 자동으로 수행됩니다. 이것은 모든 활동에서 똑같은 일을 실제로하고 싶고 ListActivity과 같은 많은 특별한 활동을 사용하지 않는 한 잘 작동합니다.

편집 :

public class MyHelper { 

    public static void doWork() { 
    // do your work here 
    } 

} 

public class MyActivity extends Activity { 
    public void onResume() { 
    super.onResume(); 
    MyHelper.doWork(); 
    } 
} 

"정적 방법"에 대한 검색 자세한 내용을 제공 할 것입니다.

+0

+1 '정적'메소드가있는 클래스를 사용하면 쉽게 유지 관리 할 수 ​​있습니다. 현재 특별한 "활동"을 사용하지 않더라도 미래에 어떤 것을 추가하면 큰 코드 리팩터가 생길 수 있습니다. –

+0

소리가 좋습니다. 나는 "헬퍼 클래스를 정적 ​​함수로"접근하는 것을 좋아한다. 왜냐하면 나는 그것들이 certian 스크린에서 그 단계를 수행하기를 원치 않는 상황이 있기 때문이다. 그리고 나는 이미 그러한 상황을 테스트하는 방법을 알고 있으므로 if 문을 넣을 수있다. 그 상황이 존재하지 않는다면 도우미에게 전화하는 이력서에. 하지만 도우미를 구현하려면 어떻게해야합니까? 나를 위해 예제 나 링크를 넣을 수 있습니까? –

+0

편집 내용보기 ... –

0

하나의 클래스 (예 : ActivityBase)에서 모든 활동을 유도 한 다음 시스템에서 제공 한 Activity을 유도하십시오. 그런 다음 onRestart()ActivityBase에 구현하십시오.

0

처음부터 다시 시작하는 응용 프로그램입니까? 또는 재시작/재개중인 활동 만?

Application 클래스에는 onCreate() 메서드가 있으며, 응용 프로그램에서 응용 프로그램을 확장하여 해당 동작을 재정의 할 수 있습니다. AndroidManifest.xml에서 응용 프로그램의 이름을 변경하여 시작할 때 사용자 정의 Application 클래스를 선택하도록하십시오. 이 코드는 모든 활동을 시작하기 전에 실행됩니다. 그러나 활동이 중지되고 재시작 될 때마다 실행되지 않습니다. 그것이 당신이 필요로하는 것이라면, 그렇게하지 못할 것입니다.

initialize() 메서드 또는 restart() 메서드가 포함 된 단일 클래스를 구현할 수도 있습니다. 당신은 당신이 원하는 각각의 액티비티에서 onRestart()를 호출하기 만하면됩니다.이 특별한 코드가 당신의 액티비티로부터 멀리 떨어져 있어야하는 것처럼 들리므로, 액티비티를 확장하여 거기에 코드를 두는 것을 권장하지 않는다고 생각합니다.

+0

글쎄, 사용자가 앱을 닫은 다음 다시 열면 화면에 로그인되어 표시됩니다.그리고 화면에서 로그인하는 방법은 onrestart가 restult에 대한 "로그인"활동을 시작한다는 것입니다. 액티비티는 비밀번호 검사를 수행 한 다음 올바르게 인증 한 경우 결과를 닫습니다. 취소 된 결과로 닫히면 프로그램에서 제거됩니다. 그것은 잘 작동하는 것처럼 보인다. 복사 붙여 넣기를 저장하고 싶었다. –

관련 문제