0

这是我的服务类代码,previous_network_type 是全局静态变量,它没有在 oncreate() 或 onstartcommand() 函数中初始化,也不是来自 create 函数的活动,为什么有帮助?每当我使用它时,它会给我 0 值它应该在启动此服务后给我 10 但返回 0。更清楚

首先 MyService 有 previous_network_type 变量我想在 oncreate 或 oncommand 函数中为它分配一个值,我将在另一个广播接收器类中使用它,并且您知道广播接收器仅在事件发生时运行,所以每当发生事件时我试图做什么发生特定事件我想访问这个值

public class MyService extends Service {

    static int previous_network_type=0;

    public void onCreate() {
        previous_network_type=10;
    };

    public int onStartCommand(Intent intent, int flags, int startId) {
        previous_network_type=10;
        return Service.START_STICKY;
    }
}

和其他类的代码(下面给出广播接收器)

        public void onReceive(Context context, Intent intent) 
         {
    MyService.current_network_type=MyService.previous_network_type;
           }
4

2 回答 2

0

只需确保您在创建/启动服务后访问该值。 尝试调试。

于 2013-07-29T12:02:23.367 回答
0
public class MainActivity extends Activity {
    Intent i;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

         i=new Intent(this,MyService.class);

        startService(i);

    }

    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();;
        stopService(i);
    }


}



public class MyService extends Service {

    static int previous_network_type=0;

    public void onCreate() {
        previous_network_type=10;
    };

    public int onStartCommand(Intent intent, int flags, int startId) {
        previous_network_type=10;
        Log.e("check","Value"+previous_network_type);
        return Service.START_STICKY;
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
}

检查一次是否在 Android.manifest.xml 中定义了服务

  <service android:name="com.example.kuchbhi.MyService"
            ></service>
于 2013-07-29T10:46:30.177 回答