123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- package com.edufound.mobile.activity;
- import android.app.Activity;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.graphics.drawable.AnimationDrawable;
- import android.os.Bundle;
- import android.support.annotation.Nullable;
- import android.view.KeyEvent;
- import android.view.View;
- import android.view.ViewGroup;
- import android.view.WindowManager;
- import android.webkit.WebView;
- import android.widget.FrameLayout;
- import android.widget.ImageView;
- import com.edufound.mobile.R;
- import com.edufound.mobile.application.EApplication;
- import com.edufound.mobile.base.BaseActivity;
- import com.edufound.mobile.main.MainPersenter;
- import com.edufound.mobile.main.MainView;
- import com.edufound.mobile.util.ContextUtil;
- import com.edufound.mobile.util.DeviceUuidFactory;
- import com.edufound.mobile.util.Logger;
- import com.edufound.mobile.util.NotificationUtil;
- import com.edufound.mobile.util.SPutil;
- import com.edufound.mobile.util.ShowDebugUrl;
- //调用Persenter里面的方法
- public class MainActivity extends BaseActivity implements MainView {
- private Activity mActivity;
- FrameLayout mRootView;
- ImageView mLoading;
- MainPersenter mPersenter;
- WebView mWebView;
- boolean activityPay;
- AnimationDrawable mLoadingAnim;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- setContentView(R.layout.activity_main);
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
- mActivity = this;
- mPersenter = new MainPersenter(this);
- initCloseMain();
- super.onCreate(savedInstanceState);
- }
- @Override
- protected void initVew() {
- Logger.DebugE("initVew");
- mRootView = findViewById(R.id.main_root);
- mLoading = findViewById(R.id.main_webloading);
- mLoadingAnim = (AnimationDrawable) mLoading.getBackground();
- mLoadingAnim.start();
- // 为防止内存泄漏,用ContextUtil.getContext,但是不弹alert
- mWebView = new WebView(ContextUtil.getContext());
- // //支持alert,但是容易内存泄漏
- // mWebView = new WebView(MainActivity.this);
- mPersenter.initWebView(mWebView);
- mWebView.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
- mRootView.addView(mWebView);
- mWebView.bringToFront();
- mLoading.bringToFront();
- new DeviceUuidFactory(ContextUtil.getContext());
- mPersenter.openWeb(getIntent());
- }
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- ShowDebugUrl.dispatchKeyEvent(event, this);
- super.onKeyDown(keyCode, event);
- return mPersenter.onKeyDown(keyCode, event);
- }
- @Override
- public boolean onKeyUp(int keyCode, KeyEvent event) {
- return mPersenter.onKeyUp(keyCode, event);
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- // System.exit(0);
- mPersenter.getJsInterfaces().desClickMusic();
- unregisterReceiver(mainBroad);
- mWebView.loadUrl("");
- mWebView.removeAllViews();
- mWebView.destroy();
- }
- @Override
- protected void onResume() {
- super.onResume();
- NotificationUtil.choseNotification(mActivity);
- if (!ContextUtil.getNetWorkState()) {
- //断网状态
- DisconnNetWork();
- }
- }
- @Override
- public void showData(String text) {
- // Toast.makeText(ContextUtil.getContext(), text, Toast.LENGTH_SHORT).show();
- }
- @Override
- public void loadUrl(String url) {
- mWebView.loadUrl(url);
- }
- @Override
- public void loadJsMehtod(String method) {
- mWebView.loadUrl("javascript:" + method + "");
- }
- @Override
- public void DisconnNetWork() {
- super.DisconnNetWork();
- if (getLocalPckClas().equals(getTopActivity(this))) {
- mPersenter.onDisConnNetWork();
- }
- }
- @Override
- public void ConnNeWork() {
- super.ConnNeWork();
- if (getLocalPckClas().equals(getTopActivity(this))) {
- mPersenter.onConnNetWork();
- }
- }
- @Override
- public Activity getActivity() {
- if (mActivity == null) {
- mActivity = this;
- }
- return mActivity;
- }
- @Override
- public void setActivityPay(boolean bool) {
- activityPay = bool;
- }
- @Override
- public boolean getActivityPay() {
- return activityPay;
- }
- @Override
- public void acPostDelayed(Runnable runnable, int time) {
- mWebView.postDelayed(runnable, time);
- }
- @Override
- public void destroyWeb() {
- mWebView.clearCache(true);
- mWebView.removeAllViews();
- mWebView.clearHistory();
- // mWebView.destroy();
- }
- @Override
- public void hideLoading() {
- mLoading.setVisibility(View.GONE);
- }
- @Override
- public void stopWebView() {
- mWebView.pauseTimers();
- }
- @Override
- public void resumeWebView() {
- mWebView.resumeTimers();
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- mPersenter.onActivityResult(requestCode, resultCode, data);
- }
- void initCloseMain() {
- IntentFilter intentFilter = new IntentFilter();
- intentFilter.addAction(ContextUtil.CLOSE_ACTIVITY_MAIN);
- intentFilter.addAction(ContextUtil.NOTIFICATION_WEB_PLAYERTIME);
- registerReceiver(mainBroad, intentFilter);
- }
- BroadcastReceiver mainBroad = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- switch (intent.getAction()) {
- case ContextUtil.CLOSE_ACTIVITY_MAIN:
- EApplication.clearActivity();
- Intent intent_restart = new Intent(ContextUtil.CLOSE_ACTIVITY_SPLASH);
- getActivity().sendBroadcast(intent_restart);
- break;
- case ContextUtil.NOTIFICATION_WEB_PLAYERTIME:
- String time = intent.getStringExtra("over_time");
- String id = intent.getStringExtra("over_id");
- String neetpost = intent.getStringExtra("over_neetpost");
- String moduletype = intent.getStringExtra("over_moduletype");
- loadJsMehtod("videoTimeRecord(" + id + "," + time + "," + neetpost + ",'" + moduletype + "')");
- break;
- }
- }
- };
- }
|