MainActivity
package bwie.broadcastreceiverdemo;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
/**
* 1.建一个类extends BroadcastReceiver 并重写onReceive()方法接收消息
* 2.Manifest中配置:
* <receiver android:name=".MyReceiver">
* <intent-filter>
* 起名规范:包名.标签名.内容(做到见名识意)
* <action android:name="bwie.broadcastreceiverdemo.receiver.anr"/>
* <category android:name="android.intent.category.DEFAULT"/>
* </intent-filter>
* </receiver>
* 3.点击事件发送广播:
* Intent intent=new Intent();
* intent.setAction("bwie.broadcastreceiverdemo.receiver.anr");
* //发送广播的方法
* sendBroadcast(intent);
* 4.造成ANR:在 Android Device Monitor的data/anr/traces.txt下找
*/
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btn_receiver).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction("bwie.broadcastreceiverdemo.receiver.anr");
//发送广播的方法
sendBroadcast(intent);
}
});
}
}
MyReceiver
package bwie.broadcastreceiverdemo;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import static android.content.ContentValues.TAG;
/**
* 1.类的用途
* 2.@author:zhaojingjing
* 3.2016/12/25.
*/
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.e(TAG, "onReceive: 接收消息" );
try {
Thread.sleep(30000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.e(TAG, "onReceive: 处理完毕" );
}
}