如何在服务内部访问getFragmentManager()方法?

黑暗的乘客

我有一个Service用于向添加视图WindowManager想法是拥有类似Facebook聊天头的功能。因此,即使我的应用程序不在前台运行,该视图也始终存在。

view我需要添加到WindowManager应该有三个标签。我正在使用TabLayout并且ViewPager为此目的

视图的xml文件

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:app="http://schemas.android.com/apk/res-auto"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:theme="@style/AppTheme.NoActionBar"
              android:layout_margin="20dp"
              android:background="#ff0000"
              android:layout_height="match_parent">

    <android.support.design.widget.TabLayout
        android:id="@+id/debugger_tablayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabGravity="center"
        app:tabMode="scrollable"/>

    <android.support.v4.view.ViewPager
        android:id="@+id/debugger_pager"
        android:layout_width="match_parent"
        android:layout_height="0dp"></android.support.v4.view.ViewPager>

</LinearLayout>

在我的服务中,我在onStartCommand()方法中按以下方式扩展xml文件

@Override
  public int onStartCommand(Intent intent, int flag, int startId) {

    windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);

    params = new WindowManager.LayoutParams(
        WindowManager.LayoutParams.WRAP_CONTENT, 200,
        WindowManager.LayoutParams.TYPE_PHONE,
        WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD,
        PixelFormat.TRANSLUCENT);

    LayoutInflater layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
    debuggerView = (LinearLayout) layoutInflater.inflate(R.layout.debugger_main, null);

    debuggerViewPager = (ViewPager) debuggerView.findViewById(R.id.debugger_pager);


    //Facing problem at this line. How to access getFragmentManager() function here ?
    DebuggerPagerAdapter adapter = new DebuggerPagerAdapter();
    debuggerViewPager.setAdapter(adapter);
    debuggerViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(
        debuggerTabLayout));

    windowManager.addView(debuggerView, params);
}

现在在下面的代码行中,将DebuggerPagerAdapteracceptsFragmentManager作为其构造函数的参数。如果下面的行是在活动中编写的,那么我可以简单地取消调用new DebuggerPagerAdapter(getFragmentManager()),但是不确定如何在Service中执行此操作?

DebuggerPagerAdapter adapter = new DebuggerPagerAdapter();

DebuggerPagerAdapter的代码

    public class DebuggerPagerAdapter extends FragmentPagerAdapter  {

  public DebuggerPagerAdapter(FragmentManager fm) {
    super(fm);
  }

  @Override
  public Fragment getItem(int position) {

    switch (position){
      case 0:
        return MemoryFragment.getInstance();
      case 1:
        return NetworkFragment.getInstance();
      case 2:
        return CpuFragment.getInstance();
    }
    return null;
  }

  @Override
  public int getCount() {
    return 3;
  }
}

TIA。

常用软件

片段仅存在于活动中,而没有其他地方。您将需要创建自己的PagerAdapter不使用片段的实现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何访问服务中的getFragmentManager()方法?

来自分类Dev

getFragmentManager() 如何在内部处理方向更改

来自分类Dev

如何在ajax内部成功访问对象方法

来自分类Dev

如何在Rust中访问方法内部的元组枚举的参数

来自分类Dev

如何在grails中调用域内部的服务方法?

来自分类Dev

如何访问服务内部的全局变量?

来自分类Dev

如何在 Activity 中调用 getSupportFragmentManager() 或 getFragmentManager()?

来自分类Dev

如何在静态类中使用 getFragmentManager()

来自分类Dev

如何在函数内部访问函数?

来自分类Dev

如何在地图内部访问功能?

来自分类Dev

如何在闭包内部访问“ this”?

来自分类Dev

如何在组件类内部访问formGroup

来自分类Dev

AngularJS服务,如何在服务函数内部更改服务属性?

来自分类Dev

如何在内部嵌套方法中访问外部变量?

来自分类Dev

如何在内部嵌套方法中访问外部变量?

来自分类Dev

如何从内部方法Javascript访问基础对象

来自分类Dev

C ++:如何访问内部类的方法?

来自分类Dev

如何访问python内部类中的方法?

来自分类Dev

如何在角度服务中访问范围

来自分类Dev

如何在服务中访问FragmentManager?

来自分类Dev

如何在Web服务中访问变量

来自分类Dev

服务方法如何在ngOnInit()甚至ngOnInit()挂钩执行一次的内部工作?

来自分类Dev

如何在 app.module 中调用服务内部的方法 - Angular

来自分类Dev

如何访问 docker 容器内的内部服务器?

来自分类Dev

如何在Recycler.Adapter上调用getFragmentManager?

来自分类Dev

如何在适配器中使用 getFragmentManager()

来自分类Dev

Symfony2:如何在扩展的load()方法内访问服务?

来自分类Dev

如何在 ASP .Net (Aspx) 中创建可从 Javascript 访问的 Web 服务方法?

来自分类Dev

如何在方法内部声明方法

Related 相关文章

  1. 1

    如何访问服务中的getFragmentManager()方法?

  2. 2

    getFragmentManager() 如何在内部处理方向更改

  3. 3

    如何在ajax内部成功访问对象方法

  4. 4

    如何在Rust中访问方法内部的元组枚举的参数

  5. 5

    如何在grails中调用域内部的服务方法?

  6. 6

    如何访问服务内部的全局变量?

  7. 7

    如何在 Activity 中调用 getSupportFragmentManager() 或 getFragmentManager()?

  8. 8

    如何在静态类中使用 getFragmentManager()

  9. 9

    如何在函数内部访问函数?

  10. 10

    如何在地图内部访问功能?

  11. 11

    如何在闭包内部访问“ this”?

  12. 12

    如何在组件类内部访问formGroup

  13. 13

    AngularJS服务,如何在服务函数内部更改服务属性?

  14. 14

    如何在内部嵌套方法中访问外部变量?

  15. 15

    如何在内部嵌套方法中访问外部变量?

  16. 16

    如何从内部方法Javascript访问基础对象

  17. 17

    C ++:如何访问内部类的方法?

  18. 18

    如何访问python内部类中的方法?

  19. 19

    如何在角度服务中访问范围

  20. 20

    如何在服务中访问FragmentManager?

  21. 21

    如何在Web服务中访问变量

  22. 22

    服务方法如何在ngOnInit()甚至ngOnInit()挂钩执行一次的内部工作?

  23. 23

    如何在 app.module 中调用服务内部的方法 - Angular

  24. 24

    如何访问 docker 容器内的内部服务器?

  25. 25

    如何在Recycler.Adapter上调用getFragmentManager?

  26. 26

    如何在适配器中使用 getFragmentManager()

  27. 27

    Symfony2:如何在扩展的load()方法内访问服务?

  28. 28

    如何在 ASP .Net (Aspx) 中创建可从 Javascript 访问的 Web 服务方法?

  29. 29

    如何在方法内部声明方法

热门标签

归档