2013-09-01 2 views
-1

예외가 발생하는 경우 클래스에서 작업을 완료하려고합니다. 나는 이런 식으로 뭔가를하고 있어요 :안드로이드에서 클래스에서 활동 완료

클래스 A :

생성자

public A(Context context){ 
    this.context=context; 
    read(); 
} 

private void read(){ 
    try { 
     ObjectInputStream ois = new ObjectInputStream(context.getAssets().open("Somefile.bin")); 
    }catch (IOException e) { 

    Log.d("Lets check","IOException"); 
    ((ActivityName)context).finish(); 
    e.printStackTrace(); 
    } 
} 

활동 활동에서

A a=new A(this); 

, 읽을 수있는 클래스 A를 호출 일부 e, 예외가 발생하면 작업을 완료해야합니다. 위에서 언급했듯이, 나는 활동의 맥락에서 끝난다. 하지만이게 효과가 없나요? 왜 그리고 어떻게 해결할 수 있는지 명확히하십시오.

+0

는 어디에 사용합니까이'A A = 새 A (이)'하지 OnCreate()? – bixiaopeng

+0

어떻게 작동하지 않습니까? 나는 그것을 시도하고, 그것은 잘 동작했다. – growic

+0

참조하십시오 http://stackoverflow.com/questions/9977881/finish-activity-from-a-separate-myjavaclass-java –

답변

0

는 클래스의 공용 기능을 확인하십시오

public static finishA(){ 
this.finish(); 
} 

그런 다음 B 클래스에서 finishA()를 호출합니다. 대리자를 사용하여 같은 활동 클래스를 완료

0

시도 ....

활동

public MyActivity extends Activity implements EndActivity 
    { 
     . 
     . 
     . 
     @override 
     public void endActivity() 
     { 
      finish(); 
     } 
    } 

EndActivity.java

공용 인터페이스의 EndActivity { 공공 무효 endActivity() ; }

A.java

public A 
{ 
    private EndActivity endActivity; 
    public A(EndActivity endActivity) 
    { 
     this.endActivity=endActivity; 
     read(); 
    } 

    private void read() 
    { 
     try 
     { 
     ObjectInputStream ois = new ObjectInputStream(context.getAssets().open("Somefile.bin")); 
     } 
     catch (IOException e) 
     { 
      Log.d("Lets check","IOException"); 
      endActivity.endActivity(); 
      e.printStackTrace(); 
     } 
    } 

한 다음 "이"클래스 생성자에 주요 활동 패스에서 활동

A a=new A(this); 
-1

에서 정상 호출을한다.

그리고 클래스의

Activity a; 
public A(Activity a){ 
    this.a=a; 
    read(); 
} 

private void read(){ 
    try { 
     ObjectInputStream ois = new  ObjectInputStream(context.getAssets().open("Somefile.bin")); 
     }catch (IOException e) { 

      Log.d("Lets check","IOException"); 
      a.finish(); 
      e.printStackTrace(); 
    } 
} 
+0

Activity를 매개 변수로 전달할 수 있습니까? – Mohit

+0

예, 매개 변수로 Activty를 전달할 수 있습니다. –