package com.example.plugindemo.activity;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import com.example.plugindemo.service.PluginTestService;
import com.example.plugindemo.vo.ParamVO;
public class PluginTestOpenPluginActivity extends Activity implements OnClickListener {
NestReceiver nestReceiver;
NestReceiver2 nestReceiver2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button btn = new Button(this);
btn.setText("点击测试打开插件Activity、service、receiver");
setContentView(btn);
btn.setOnClickListener(this);
IntentFilter testFiler = new IntentFilter();
testFiler.addAction("xx.nest");
nestReceiver = new NestReceiver();
registerReceiver(nestReceiver, testFiler);
IntentFilter testFiler2 = new IntentFilter();
testFiler2.addAction("xx.nest");
nestReceiver2 = new NestReceiver2();
registerReceiver(nestReceiver2, testFiler2);
}
class NestReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("NestReceiver", intent.getStringExtra("str1") + ((ParamVO) intent.getSerializableExtra("paramvo")) + ", action:" + intent.getAction());
}
}
class NestReceiver2 extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("NestReceiver2", ((ParamVO) intent.getSerializableExtra("paramvo")) + ", action:" + intent.getAction());
}
}
@Override
public void onClick(View v) {
Intent testIntent = new Intent(this, PluginTestActivity.class);
testIntent.putExtra("str1", "打开PluginTestActivity——————");
ParamVO pvo = new ParamVO();
pvo.name = "打开PluginTestActivity";
testIntent.putExtra("paramvo", pvo);
startActivity(testIntent);
testIntent = new Intent("test.abc");
testIntent.putExtra("str1", "打开test.abc——————");
pvo = new ParamVO();
pvo.name = "打开test.abc";
testIntent.putExtra("paramvo", pvo);
startActivity(testIntent);
//启动服务
Intent service = new Intent();
service.setClassName(this, PluginTestService.class.getName());
service.putExtra("str1", "打开PluginTestService——————");
pvo = new ParamVO();
pvo.name = "打开PluginTestService";
service.putExtra("paramvo", pvo);
startService(service);
//停止服务
service = new Intent();
service.setClassName(this, PluginTestService.class.getName());
service.putExtra("str1", "停止PluginTestService——————");
pvo = new ParamVO();
pvo.name = "停止PluginTestService";
service.putExtra("paramvo", pvo);
stopService(service);
Intent intent = new Intent("test.rst2");
intent.putExtra("str1", "打开 test.rst2——————");
pvo = new ParamVO();
pvo.name = "打开 test.rst2";
intent.putExtra("paramvo", pvo);
sendBroadcast(intent);
//测试动态注册的插件广播
intent = new Intent("xx.nest");
intent.putExtra("str1", "打开动态注册的NestReceiver——————");
pvo = new ParamVO();
pvo.name = "打开动态注册的NestReceiver";
intent.putExtra("paramvo", pvo);
sendBroadcast(intent);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(nestReceiver);
}
}