经过自己的探索,终于在Receiver里面成功调用自己了,用如下代码:
         //如果监听到网络状态变化,则调用一次自己,主要功能在主程序中实现。
            Intent i = new Intent(context, MyprogramActivity.class);
            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);同时,在主程序中调用com.dragon.netguard也成功了,但用的办法和Receiver里面是不一样的:
              Intent intent = new Intent();
              intent.setComponent(new ComponentName("com.dragon.netguard","com.dragon.netguard.MainActivity"));
              startActivity(intent);现在还有两个问题需要解决,一个是怎么杀掉com.dragon.netguard,另一个就是在上面重启com.dragon.netguard的时候,怎么样才能让netguard不显示界面,直接在后台悄悄运行。继续请教高手谢谢!

解决方案 »

  1.   

    ntent localIntent3 = new Intent(context, MyprogramActivity.class);
      context.startService(localIntent3);
    MyprogramActivity是个Activity吧》为什么用启动service方法启动呢?
    在上面的程序中,如果用localActivityManager的话,那么只要一执行,就发生致命错误,强制退出了。
    如果用下面的ActivityManager mymanager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);那么eclipse提示错误,说:The method getSystemService(Object) is undefined for the type NetworkReceiver.java。

    发生致命错误是因为am是空的吧?没有看到初始化的地方!其他没看出什么有可能出问题的地方。
      

  2.   

        多谢,没想到还有人回答我的问题。    我的程序是没有问题的,不管是在模拟器还是真机上都很正常。后来我试过,对于一个Activity,用startActivity和startService都可以正常让它运行起来,我也不知道为什么。懒得看SDK了。     我上面提问题中,杀进程的更是比较奇怪。程序看起来是没有错误,但实际上并未起作用,后来我发现了,必须要先列举所有进程,然后再杀其中的一个,就可以杀掉了。这玩意比较奇怪。