Android和Java静态变量初始化



这是我在这里为服务类编写的代码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;
           }
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>

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

相关内容

  • 没有找到相关文章

最新更新