SplashActivity.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. package com.uas.pda_wms.activity;
  2. import android.content.Context;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.os.Handler;
  6. import android.os.Message;
  7. import android.view.WindowManager;
  8. import com.uas.pda_wms.R;
  9. import com.uas.pda_wms.application.PdaApplication;
  10. import com.uas.pda_wms.global.GloableParams;
  11. import com.uas.pda_wms.tools.DataSourceManager;
  12. import com.uas.pda_wms.tools.SharedPreUtil;
  13. import com.uas.pda_wms.tools.VolleyUtil;
  14. import com.uas.pda_wms.util.CommonUtil;
  15. import com.uas.pda_wms.util.Constants;
  16. import java.util.List;
  17. import java.util.Map;
  18. /**
  19. * 应用开机启动页面
  20. * Created by RaoMeng on 2017/4/10.
  21. */
  22. public class SplashActivity extends BaseActivity {
  23. private String cacheUri;
  24. private String mIp, mPort;
  25. private long startLoginTime;
  26. private Handler mHandler = new Handler() {
  27. @Override
  28. public void handleMessage(Message msg) {
  29. super.handleMessage(msg);
  30. long time = System.currentTimeMillis() - startLoginTime;
  31. switch (msg.what) {
  32. //连接成功
  33. case VolleyUtil.SUCCESS_SUCCESS:
  34. //添加缓存
  35. saveCache(mIp, mPort);
  36. if (time <= 2000) {
  37. mHandler.postDelayed(new Runnable() {
  38. @Override
  39. public void run() {
  40. startLogin();
  41. }
  42. }, 2000 - time);
  43. } else {
  44. startLogin();
  45. }
  46. break;
  47. //连接失败
  48. case VolleyUtil.FAILED_FAILED:
  49. String notice = (String) msg.obj;
  50. CommonUtil.toastNoRepeat(SplashActivity.this, notice);
  51. if (time <= 2000) {
  52. mHandler.postDelayed(new Runnable() {
  53. @Override
  54. public void run() {
  55. startServer();
  56. }
  57. }, 2000 - time);
  58. } else {
  59. startServer();
  60. }
  61. break;
  62. }
  63. }
  64. };
  65. private void startLogin() {
  66. Intent intent = new Intent();
  67. intent.setClass(SplashActivity.this, MainActivity.class);
  68. intent.putExtra("isConnected", true);
  69. startActivity(intent);
  70. finish();
  71. }
  72. private void startServer() {
  73. Intent intent = new Intent();
  74. intent.setClass(SplashActivity.this, MainActivity.class);
  75. intent.putExtra("isConnected", false);
  76. startActivity(intent);
  77. finish();
  78. }
  79. @Override
  80. protected void onCreate(Bundle savedInstanceState) {
  81. super.onCreate(savedInstanceState);
  82. }
  83. @Override
  84. protected void initViews() {
  85. if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
  86. finish();
  87. return;
  88. }
  89. // requestWindowFeature(Window.FEATURE_NO_TITLE);
  90. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
  91. // CommonUtil.initStatusBar(this, R.color.transparent);
  92. setContentView(R.layout.activity_splash);
  93. }
  94. @Override
  95. protected void initEvents() {
  96. }
  97. @Override
  98. protected void initDatas() {
  99. if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
  100. finish();
  101. return;
  102. }
  103. loadCache();
  104. }
  105. //加载缓存
  106. private void loadCache() {
  107. cacheUri = SharedPreUtil.getString(this, SharedPreUtil.KEY_URI, null);
  108. //Toast.makeText(getActivity(),cacheUri,Toast.LENGTH_SHORT).show();
  109. //当缓存不为空
  110. if (cacheUri != null) {
  111. //将缓存数据加载到数据源UriList
  112. DataSourceManager.getDataSourceManager().setUriList(cacheUri);
  113. List<Map<String, String>> list = DataSourceManager.getDataSourceManager().getUriList();
  114. mIp = list.get(0).get(DataSourceManager.KEY_IP);
  115. mPort = list.get(0).get(DataSourceManager.KEY_PORT);
  116. startLoginTime = System.currentTimeMillis();
  117. String mSystemCache = SharedPreUtil.getString(this, Constants.FLAG.SELECTED_SYSTEM_CACHE, "ERP");
  118. connect(mIp, mPort, mSystemCache);
  119. } else {
  120. mHandler.postDelayed(new Runnable() {
  121. @Override
  122. public void run() {
  123. startServer();
  124. }
  125. }, 2000);
  126. }
  127. }
  128. private void connect(String ip, String port, String site) {
  129. String url = getIPAddress(ip, port, site);
  130. //传递Handler对象给Volley
  131. VolleyUtil.setVolleyHandler(mHandler);
  132. //连接服务器
  133. VolleyUtil.getVolleyUtil().requestConnectServer(this, url, VolleyUtil.METHOD_POST, VolleyUtil.FRAGMENT_CONNECTSERVER);
  134. }
  135. //添加缓存
  136. private void saveCache(String ip, String port) {
  137. cacheUri = DataSourceManager.getDataSourceManager().addUriItem(ip, port);
  138. SharedPreUtil.saveString(this, SharedPreUtil.KEY_URI, cacheUri);
  139. }
  140. //拼接IP地址
  141. private String getIPAddress(String ip, String port, String site) {
  142. //将IP和port保存
  143. Context ct = getApplicationContext() == null ? PdaApplication.getmContext() :
  144. getApplicationContext();
  145. GloableParams.setUri(ip, port, site, ct);
  146. /*
  147. * http://IP+端口/ERP/请求路径
  148. * http://192.168.253.111:8090/ERP/oa/info/getPagingRelease.action*/
  149. // String applyAddr = "http://" + GloableParams.IP + ":" + GloableParams.PORT + GloableParams.ADDRESS_CONNECT_SERVER;
  150. return GloableParams.ADDRESS_CONNECT_SERVER;
  151. }
  152. }