Android的Service如何获取Activity传入的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android的Service如何获取Activity传入的值相关的知识,希望对你有一定的参考价值。
我在Activity界面使用Intent.putextra将值传递到Service中,2.1版本之前的service生命周期是有调用onstart()方法的,但是2.2版本以后,都是调用onstartcommand方法,在这个方法里面直接获取参数中的Intent,并调用getStringExtra方法获取传入的参数,可以为何每次获取的都是空值,烦请各位给与解答,谢谢
参考技术A 你写putExtra方法时,是否就传入的null,因为在用getStringExtra方法时候,获取不到值,才会返回一个空值.打个log看下,是否将你想要的参数传进去了 参考技术B 你是用bindService 绑定服务的吧,实在不行 就把数据写进preference中,在service中读,或者通过数据库和广播, 办法总归有的,好坏优雅之分罢了,希望可以帮到你! 参考技术C通过service中的onBind方法,这个方法的参数是Intent,通过Intent就能获得传入的值。范例代码如下:
public IBinder onBind(Intent intent)// TODO Auto-generated method stub
Log.e("onBind", "onBind");
//看这 String url=intent.getStringExtra("url");
return new MyBinder();
参考技术D bundle
Android基础篇 Android获取屏幕宽高的方法
一、通过获取系统服务的方式
WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
int width = wm.getDefaultDisplay().getWidth();
int height = wm.getDefaultDisplay().getHeight();
二、通过Activity/Fragment来获取
(1)Activity
WindowManager wmAct = this.getWindowManager();
//WindowManager wmAct = getWindowManager();
int width1 = wmAct.getDefaultDisplay().getWidth();
int height1 = wmAct.getDefaultDisplay().getHeight();
(2) Fragment / Dialog
WindowManager wm1 = getActivity.getWindowManager();
int width1 = wm1.getDefaultDisplay().getWidth();
int height1 = wm1.getDefaultDisplay().getHeight();
三、借助DisplayMetrics来获取画面宽高
WindowManager manager = this.getWindowManager();
DisplayMetrics outMetrics = new DisplayMetrics();
manager.getDefaultDisplay().getMetrics(outMetrics);
int width = outMetrics.widthPixels;
int height = outMetrics.heightPixels;
四、通过资源来借助DisplayMetrics来获取画面宽高
Resources resources = this.getResources();
DisplayMetrics dm = resources.getDisplayMetrics();
float density = dm.density;
int width = dm.widthPixels;
int height = dm.heightPixels;
以上是关于Android的Service如何获取Activity传入的值的主要内容,如果未能解决你的问题,请参考以下文章
Android的Service如何获取Activity传入的值
Android service如何获取Activity传入的值
如何在 Android 的 Receiver/Service 中获取 CheckBoxPreference 值?
Ambiguous method call. Both findViewById (int) in AppCompatActivity and findViewById (int) in Activi