解决方案 »

  1.   

    在A里面这样写,public A instance=A.this,其它类里面就可以写,A.instance.方法名
      

  2.   

    最好不要令 Activity本身为 static, 这样的话,系统进行资源回收的时候,判断 该 Activity为 static, 就不会对他进行资源回收你可以在非 Activity 类中,写这么一个方法.public void setActivityCallback(Activity activity){
       this.aActiity = activity;
    }或者给非 Activity 添加一个包含 Activity 的构造方法
    如:
    public Bclass(Activity activity){
      this.aActivity = activity;
    }但是请注意不要在非 Activity 类中,将 Activity 定义为 static 变量
      

  3.   

    初始化Bclass 的时候把AActivity 传进去就行了
      

  4.   

    不行啊,会报non-static cannot referenced from a static
      

  5.   

    不行啊,会报non-static cannot referenced from a static我少写了一个static,应该是在public static InfoActivity instance = null;然后在oncreate里面写instance =this,在其它activity里面就可以用InfoActivity.instance.方法名
      

  6.   


    这样做会造成有两个AActivity的吧?在实例化B前,我已经启动了AActivity
      

  7.   

    public class AActivity extends Activity ·{
      //声明一个Bclass对象
      public Bclass bClass;
             
                    
             public void onCreate(..) {
                   bClass = new Bclass(this);
             }
                      
            public int methoda() {
                    //do something
             }
    }public class Bclass {
            public AActivity aActivity = null;
            public Bclass(AActivity activity){
                 aActivity = activity;
            }
            //我想在这里面这样用
            aActivity.methoda();
    }
      

  8.   

    外部类通过用activity的handle发送消息到activity来执行方法比较安全。
      

  9.   


    这样做会造成有两个AActivity的吧?在实例化B前,我已经启动了AActivity不会啊,这只是引用而已,没什么大影响的
      

  10.   

    将AActivity类中的methoda方法定义为static方法,如果对你的AActivity这个类没有影响的话
      

  11.   

    不行啊,会报non-static cannot referenced from a static我少写了一个static,应该是在public static InfoActivity instance = null;然后在oncreate里面写instance =this,在其它activity里面就可以用InfoActivity.instance.方法名
    不好意思,忙别的事情去了,刚刚我尝试了你这个方法,无论怎么设置线程时间,B里面使用A.instance都会报nullpointerexception,很郁闷~~
      

  12.   

    你的A生成了没有啊,生成了有没有指定instance,你看下B里面的A.instance是什么
      

  13.   

    public class AActivity extends Activity ·{
      //声明一个Bclass对象
      public Static AActivity instance;
              
                     
             public void onCreate(..) {
                   instance= this
             }
                       
            public int methoda() {
                    //do something
             }
    }
     
    public class Bclass {
     
            //我想在这里面这样用
            AActivity .instance.methoda();
    }
      

  14.   


    A生成了,并且在A里面Log是有句柄的,但是在B里面是null。
      

  15.   

    1.将Activity对象传入.
    2.定义static方法,直接Activity.xx()调用.
      

  16.   

    传过去activity还是比较长用的