-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 来读取 somefile ,如果抛出任何异常,它应该完成活动。如上所述,我确实完成了活动的上下文。但这不起作用?请澄清为什么以及如何解决这个问题。?

4

3 回答 3

0

尝试使用委托从同一活动类完成它....

活动

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

结束活动.java

公共接口 EndActivity { public void endActivity(); }

爪哇

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);
于 2013-09-01T08:17:38.223 回答
0

在 A 类中创建一个公共函数:

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

然后finishA()从 B 类调用。

于 2013-09-01T08:09:28.067 回答
-1

从主要活动将“this”传递给类Constructor。

然后在课堂上

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();
    }
}
于 2013-09-01T08:22:17.090 回答