应为Activity的对象不是自己造的所以反射和new都不是我们想要的得的,不是你想要的那个实例而是个新的实例,这个不是我门想要得到的,我们要得到是正在运行的那个Activity的实例
1,经验证如下方法可行
在要得到的那个Activity中写一个静态的属性,把自己的Activity对象传给这个静态属性,第一次启动Activity时是得到不了的,但是第二次就能获得,
2,笔者为了能够在一个类中获得这个启动的Activity中的转态的改变在其中自定义了个接口来监听
ChannelActivity 为Activity的类名
public static ChannelActivity cacs;
cacs=this;
public interface OnDataChanger{
void datachanger();
}
public static OnDataChanger ondatachanger;
public static void setondatachanger(OnDataChanger ondatachanger){
cacs.ondatachanger=ondatachanger;
}
这段代码就可实施监听了
调用这个Activity的类的中这么写的:
ChannelActivity ca1 =ChannelActivity.cacs;
if(ca1!=null){
Log.e("TAG", ca1.toString());
ca1.setondatachanger(new OnDataChanger() {
@Override
public void datachanger() {
isotherdata();
mpa.notifyDataSetChanged();
}
});
就能实施监听这个Activity状态的改变了