Android Webview с автообновлением, когда неактивен - PullRequest
0 голосов
/ 04 декабря 2018

Я экспериментирую с созданием гибридного приложения для Android на основе нижних вкладок и 3 веб-просмотров в разных фрагментах.

Это мой код активности:

public class MainActivity extends AppCompatActivity {

private AHBottomNavigation bottomNavigation;

private ArrayList<AHBottomNavigationItem> bottomNavigationItems = new ArrayList<>();

RelativeLayout rlOne, rlTwo, rlThree;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    findViews();

}

private void findViews() {

    rlOne = findViewById(R.id.rlOne);
    rlTwo = findViewById(R.id.rlTwo);
    rlThree = findViewById(R.id.rlThree);

    bottomNavigation = findViewById(R.id.bottom_navigation);

    // Create items
    AHBottomNavigationItem item1 = new AHBottomNavigationItem(R.string.tab_1, R.drawable.ic_apps_white_36dp, R.color.color_tab_1);
    AHBottomNavigationItem item2 = new AHBottomNavigationItem(R.string.tab_2, R.drawable.ic_store_white_36dp, R.color.color_tab_2);
    AHBottomNavigationItem item3 = new AHBottomNavigationItem(R.string.tab_3, R.drawable.ic_live_help_white_36dp, R.color.color_tab_3);

    // Add items
    bottomNavigation.addItem(item1);
    bottomNavigation.addItem(item2);
    bottomNavigation.addItem(item3);

    bottomNavigation.addItems(bottomNavigationItems);

    bottomNavigation.setTranslucentNavigationEnabled(true);

    bottomNavigation.setCurrentItem(0);
    bottomNavigation.setOnTabSelectedListener(new AHBottomNavigation.OnTabSelectedListener() {
        @Override
        public boolean onTabSelected(int position, boolean wasSelected) {

            if (!wasSelected) {
                rlOne.setVisibility(View.GONE);
                rlTwo.setVisibility(View.GONE);
                rlThree.setVisibility(View.GONE);

                switch (position) {
                    case 0:
                        rlOne.setVisibility(View.VISIBLE);
                        break;
                    case 1:
                        rlTwo.setVisibility(View.VISIBLE);
                        break;
                    case 2:
                        rlThree.setVisibility(View.VISIBLE);
                        break;
                    default:
                        rlOne.setVisibility(View.VISIBLE);
                        break;
                }
            }
            return true;
        }
    });
}

}

И это кододного фрагмента:

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_item_one, container, false);

    toolbar = view.findViewById(R.id.toolbar);
    tvTitle = view.findViewById(R.id.tvTitle);

    ((AppCompatActivity) getActivity()).getSupportActionBar();
    tvTitle.setText(R.string.tab_1);

    webview = view.findViewById(R.id.webview);

    progress = view.findViewById(R.id.progress);

    webview.setListener(getActivity(), this);

    webview.loadUrl("https://ekaneskratisi.gr/mobile/");
    webview.setWebChromeClient(new WebChromeClient() {

        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            super.onProgressChanged(view, newProgress);
            if (progress != null) {
                progress.setProgress(newProgress);
                if (newProgress == 100) {
                    progress.setVisibility(View.GONE);
                } else {
                    progress.setVisibility(View.VISIBLE);
                }
            }
        }
    });

    webview.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            //This is the filter
            if (event.getAction()!=KeyEvent.ACTION_DOWN)
                return true;

            if (keyCode == KeyEvent.KEYCODE_BACK) {
                if (webview.canGoBack()) {
                    webview.goBack();
                } else {
                    ((MainActivity)getActivity()).onBackPressed();
                }
                return true;
            }
            return false;
        }
    });

    return view;

Поэтому мне нужна вкладка для обновления каждые 5 секунд, когда она скрыта.Я читал некоторые другие решения, но до сих пор не могу это сделать ..

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...