| package com.secondworld.sdk; | 
|   | 
| import android.content.Intent; | 
| import android.os.Bundle; | 
| import android.support.annotation.NonNull; | 
| import android.view.KeyEvent; | 
| import android.widget.FrameLayout; | 
| import android.widget.RelativeLayout; | 
|   | 
| import com.secondworld.sdk.utils.LogUtil; | 
| import com.secondworld.sdk.utils.WebViewUtil; | 
|   | 
| public class GameActivity extends UnityPlayerActivity { | 
|   | 
|     private static Class<? extends GameActivityProxy> proxyClass; | 
|   | 
|     private GameActivityProxy proxy; | 
|   | 
|     private RelativeLayout webContainer; | 
|     private FrameLayout unityContainer; | 
|   | 
|     //注册代理类 | 
|     public static void registerProxy(Class<? extends GameActivityProxy> proxyClass) { | 
|         GameActivity.proxyClass = proxyClass; | 
|     } | 
|   | 
|     @Override | 
|     protected void onCreate(Bundle savedInstanceState) { | 
|         super.onCreate(savedInstanceState); | 
|         LogUtil.d("GameActivity", "启动的是GameActivity!"); | 
|         setContentView(R.layout.activity_main); | 
|         webContainer = findViewById(R.id.webContainer); | 
|         unityContainer = findViewById(R.id.unityContainer); | 
|         unityContainer.addView(mUnityPlayer); | 
|         WebViewUtil.I.init(this, webContainer); | 
|         //初始化渠道代理类 | 
|         try { | 
|             if (proxyClass != null) { | 
|                 proxy = proxyClass.newInstance(); | 
|                 proxy.onCreate(this); | 
|             } else | 
|                 LogUtil.w("GameActivity", "proxyClass 不存在"); | 
|         } catch (IllegalAccessException | InstantiationException e) { | 
|             e.printStackTrace(); | 
|             LogUtil.e("GameActivity", e); | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     protected void onStart() { | 
|         super.onStart(); | 
|         if (proxy != null) | 
|             proxy.onStart(); | 
|     } | 
|   | 
|     @Override | 
|     protected void onRestart() { | 
|         super.onRestart(); | 
|         if (proxy != null) | 
|             proxy.onRestart(); | 
|     } | 
|   | 
|     @Override | 
|     protected void onResume() { | 
|         super.onResume(); | 
|         if (proxy != null) | 
|             proxy.onResume(); | 
|     } | 
|   | 
|     @Override | 
|     protected void onPause() { | 
|         super.onPause(); | 
|         if (proxy != null) | 
|             proxy.onPause(); | 
|     } | 
|   | 
|     @Override | 
|     protected void onStop() { | 
|         super.onStop(); | 
|         if (proxy != null) | 
|             proxy.onStop(); | 
|     } | 
|   | 
|     @Override | 
|     protected void onDestroy() { | 
|         super.onDestroy(); | 
|         if (proxy != null) | 
|             proxy.onDestroy(); | 
|     } | 
|   | 
|     @Override | 
|     protected void onNewIntent(Intent intent) { | 
|         super.onNewIntent(intent); | 
|         if (proxy != null) | 
|             proxy.onNewIntent(intent); | 
|     } | 
|   | 
|     @Override | 
|     protected void onActivityResult(int requestCode, int resultCode, Intent data) { | 
|         super.onActivityResult(requestCode, resultCode, data); | 
|         if (proxy != null) | 
|             proxy.onActivityResult(requestCode, resultCode, data); | 
|     } | 
|   | 
|     @Override | 
|     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { | 
|         super.onRequestPermissionsResult(requestCode, permissions, grantResults); | 
|         if (proxy != null) | 
|             proxy.onRequestPermissionsResult(requestCode, permissions, grantResults); | 
|     } | 
|   | 
|     @Override | 
|     public boolean onKeyDown(int keyCode, KeyEvent event) { | 
|         if (proxy == null) | 
|             return super.onKeyDown(keyCode, event); | 
|         boolean b = proxy.onKeyDown(keyCode, event); | 
|         return b ? b : super.onKeyDown(keyCode, event); | 
|     } | 
| } |