如何在非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://azwzsj.com/article/dghjog.html