android教程之hockeyapp捕获异常示例
package com.example.testhockeyapp;
import net.hockeyapp.android.CrashManager;
import net.hockeyapp.android.CrashManagerListener;
import net.hockeyapp.android.UpdateManager;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final String App_ID = "a7ab0fe5f11edc8afbfbc842ecc38ad7";
String a = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
a.charAt(23);
}
});
checkForUpdates();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
checkForCrashes();
}
private void checkForCrashes() {
CrashManager.register(this, App_ID, new CrashManagerListener() {
@Override
public void onCrashesSent() {
super.onCrashesSent();
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Crash data was sent. Thanks!",
Toast.LENGTH_LONG).show();
}
});
}
@Override
public void onCrashesNotSent() {
super.onCrashesNotSent();
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(
getApplicationContext(),
"Crash data failed to sent. Please try again later.",
Toast.LENGTH_LONG).show();
}
});
}
});
}
private void checkForUpdates() {
// Remove this for store builds!
UpdateManager.register(this, App_ID);
}
}