如何在非Activity中启动、绑定Service(服务)-创新互联
做Android开发的都知道,启动或绑定服务的语句是startService、bindService,可是这两个方法一般都只能在Activity中使用,也就是用Activity才能“.”的出这方法。那如何在非Activity中开始、绑定服务呢?
创新互联公司是一家以网络技术公司,为中小企业提供网站维护、成都网站设计、网站制作、网站备案、服务器租用、域名申请、软件开发、微信小程序开发等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站欢迎联系:18980820575以Fragment为例:
一个MyFragment类是继承Fragment,他不是Activity类型。但是,一个非Activity的类总是和Activity类有关联的,需要在Activity中调用非Activity中的参数、方法之类,这就给了我们在非Activity类中调用startService、bindService的机会。即将Activity类名这个参数传到非Activity中,然后调用方法启动服务。
如在Activity中调用MyFragment的时候:
FragmentManager fragmentMgr = getSupportFragmentManager();
FragmentTransaction ft = fragmentMgr.beginTransaction();
MyFragment fragment = new MyFragment(this); 在这一句里加一个参数
ft.add(R.id.main_tab1_bofang, fragment );
ft.commit();
然后,我们在MyFragment中创建一个以Activity为参数类型的构造方法:
public MyFragment(Activity Activity) {
Log.e("onCreateView", "准备绑定服务");
Intent service=new Intent(Activity.getApplicationContext(),MusicService.class);
Activity.getApplicationContext().bindService(service, conn, Context.BIND_AUTO_CREATE);
}
注意事项:在一些类中,我们不能直接使用bindService这个方法,得通过Activity.getApplicationContext()来使用,如在TabActivity类中。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前名称:如何在非Activity中启动、绑定Service(服务)-创新互联
本文网址:http://scyanting.com/article/dghjog.html