Commit 0aa4ffd2 authored by fallenstardust's avatar fallenstardust

符合安全的广播

parent 47f12a69
...@@ -15,6 +15,7 @@ import android.util.Log; ...@@ -15,6 +15,7 @@ import android.util.Log;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.lang.ref.WeakReference;
import java.util.List; import java.util.List;
import cn.garymb.ygomobile.AppsSettings; import cn.garymb.ygomobile.AppsSettings;
...@@ -46,7 +47,42 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> { ...@@ -46,7 +47,42 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> {
private DialogPlus dialog = null; private DialogPlus dialog = null;
private Handler handler; private Handler handler;
private boolean isNewVersion; private boolean isNewVersion;
MessageReceiver mReceiver = new MessageReceiver(); private WeakReference<Context> weakReference;
private MessageReceiver mReceiver;
public ResCheckTask(Context context) {
this.weakReference = new WeakReference<>(context);
}
public void regesterReceiver() {
mReceiver = new MessageReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("RUN_WINDBOT");
if (weakReference != null && weakReference.get() != null){
Context context = weakReference.get();
context.registerReceiver(mReceiver, intentFilter);
}
}
public class MessageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals("RUN_WINDBOT")) {
String args = intent.getStringExtra("args");
WindBot.runAndroid(args);
}
}
}
public void unregisterMReceiver() {
if(weakReference != null && weakReference.get() != null) {
Context context = weakReference.get();
context.unregisterReceiver(mReceiver);
}
}
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public ResCheckTask(Context context, ResCheckListener listener) { public ResCheckTask(Context context, ResCheckListener listener) {
...@@ -376,26 +412,10 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> { ...@@ -376,26 +412,10 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> {
mContext.registerReceiver(mReceiver, filter); mContext.registerReceiver(mReceiver, filter);
} }
public class MessageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals("RUN_WINDBOT")) {
String args = intent.getStringExtra("args");
WindBot.runAndroid(args);
}
}
}
public void unregisterMReceiver() {
mContext.unregisterReceiver(mReceiver);
}
Handler han = new Handler() { Handler han = new Handler() {
@Override @Override
public void handleMessage(Message msg) { public void handleMessage(Message msg) {
// TODO: Implement this method
super.handleMessage(msg); super.handleMessage(msg);
switch (msg.what) { switch (msg.what) {
case 0: case 0:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment