短信防火墙,进来帮帮忙吧解决办法
短信防火墙,进来帮帮忙吧
小弟正在学习android开发,遇到不懂的地方,还请各位大神指教。
当BroadcastReceiver接收到广播后,就调用Activity中的方法,可这样是实例化不了的
Activity
BroadcastReceiver
------解决方案--------------------
你如果不想打开Activity,就直接把这个function写到BroadcastReceiver里面的onReceive不就可以了吗?化繁为简。
------解决方案--------------------
如果Activity已打开过,而不想重新打开,有几种方法:
1、在AndroidManifest.xml里面设置Activity android:launchMode="singleInstance"就不会重新打开Activity,然后用intent的方式,在Activity里面添加一个
@Override
protected void onNewIntent(Intent intent)
{
对接收到的intent进行处理
}
2、直接在Activity里面注册一个SMSBroadcastReceiver接收器
3、或者在Activity里面注册自定义Receiver,由SMSBroadcastReceiver发送广播过来。
条条大道通罗马,方法很多的,找一种适合的方法吧。
小弟正在学习android开发,遇到不懂的地方,还请各位大神指教。
当BroadcastReceiver接收到广播后,就调用Activity中的方法,可这样是实例化不了的
Activity
- Java code
public class MyActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void function() { //方法 // // } }
BroadcastReceiver
- Java code
public class SMSBroadcastReceiver extends BroadcastReceiver { DBHelper db; public void onReceive(Context context, Intent intent) { MyActivity ma=new MyActivity (); ma.function(); } }
------解决方案--------------------
你如果不想打开Activity,就直接把这个function写到BroadcastReceiver里面的onReceive不就可以了吗?化繁为简。
------解决方案--------------------
如果Activity已打开过,而不想重新打开,有几种方法:
1、在AndroidManifest.xml里面设置Activity android:launchMode="singleInstance"就不会重新打开Activity,然后用intent的方式,在Activity里面添加一个
@Override
protected void onNewIntent(Intent intent)
{
对接收到的intent进行处理
}
2、直接在Activity里面注册一个SMSBroadcastReceiver接收器
3、或者在Activity里面注册自定义Receiver,由SMSBroadcastReceiver发送广播过来。
条条大道通罗马,方法很多的,找一种适合的方法吧。