在android中完成一个类的活动

时间:2013-09-01 07:50:29

标签: java android exception android-activity

如果抛出任何异常,我试图从类中完成活动。 我正在做这样的事情:

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

3 个答案:

答案 0 :(得分:0)

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

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

然后从B班打电话给finishA()

答案 1 :(得分:0)

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

活性

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

EndActivity.java

  

公共接口EndActivity       {           public void 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);

答案 2 :(得分:-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();
    }
}