CustomCrashActivity.java 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package com.xzjmyk.pm.activity;
  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.widget.Button;
  7. import android.widget.ImageView;
  8. import com.afollestad.materialdialogs.MaterialDialog;
  9. import com.me.network.app.http.HttpClient;
  10. import com.me.network.app.http.Method;
  11. import com.me.network.app.http.rx.ResultListener;
  12. import com.me.network.app.http.rx.ResultSubscriber;
  13. import cat.ereza.customactivityoncrash.CustomActivityOnCrash;
  14. /**
  15. * Created by RaoMeng on 2016/10/24.
  16. */
  17. public class CustomCrashActivity extends Activity {
  18. private Button mRestartBtn, mCloseBtn;
  19. private ImageView mErrorIv;
  20. private Intent intent;
  21. private String stackTraceString;
  22. @Override
  23. protected void onCreate(Bundle savedInstanceState) {
  24. super.onCreate(savedInstanceState);
  25. setContentView(R.layout.activity_custom_crash);
  26. mRestartBtn = (Button) findViewById(R.id.restart_btn);
  27. mCloseBtn = (Button) findViewById(R.id.close_btn);
  28. mErrorIv = (ImageView) findViewById(R.id.error_image);
  29. intent = getIntent();
  30. stackTraceString = CustomActivityOnCrash.getAllErrorDetailsFromIntent(this, intent);
  31. new MaterialDialog.Builder(this).content(stackTraceString)
  32. .build().show();
  33. HttpClient httpClient = new HttpClient.Builder("http://10.1.80.56:8085/")
  34. .isDebug(true)
  35. .build(true);
  36. httpClient.Api().send(new HttpClient.Builder()
  37. .url("mail/errorInfo")
  38. .add("message", stackTraceString)
  39. .method(Method.GET)
  40. .build(), new ResultSubscriber<>(new ResultListener<Object>() {
  41. @Override
  42. public void onResponse(Object o) {
  43. }
  44. }));
  45. final Class<? extends Activity> activityClassFromIntent = CustomActivityOnCrash.getRestartActivityClassFromIntent(intent);
  46. final CustomActivityOnCrash.EventListener listenerFromIntent = CustomActivityOnCrash.getEventListenerFromIntent(intent);
  47. mRestartBtn.setOnClickListener(new View.OnClickListener() {
  48. @Override
  49. public void onClick(View v) {
  50. Intent intent = new Intent(CustomCrashActivity.this, activityClassFromIntent);
  51. CustomActivityOnCrash.restartApplicationWithIntent(CustomCrashActivity.this, intent, listenerFromIntent);
  52. }
  53. });
  54. mCloseBtn.setOnClickListener(new View.OnClickListener() {
  55. @Override
  56. public void onClick(View v) {
  57. CustomActivityOnCrash.closeApplication(CustomCrashActivity.this, listenerFromIntent);
  58. }
  59. });
  60. }
  61. }