嗨我想運行一個代碼有一個活動和一個BroadcastReceiver運行時,新消息來了,是的,它運行清晰,但我有一個問題與BroadcastReceiver對象!BroadcastReceiver對象只使用初始值,爲什麼?
這是MainActivity類別的一部分:
public class MainActivity extends FragmentActivity {
private IncomingSms checkAndDo; //=> OBJECT
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
checkAndDo= new IncomingSms();
checkAndDo.setProgramState(210); // program state is a variable
checkAndDo.getProgramState(this); // Toast output : " >>>210 "
....
但是,當一個新的消息來了,onReceived(所謂的)的問題開始! IncommingSms類:
公共類IncomingSms擴展廣播接收器{
private int programState=110; // Which state we are ? 110=> white/111=> off/210=>black ...
public void onReceive(Context context, Intent intent) {
final Bundle bundle = intent.getExtras();
this.getProgramState(context);
// This method called again but toast output is : ">>>110"
// which is initial value !?
AND ....
}
public void setProgramState(int status) {
this.programState=status;
}
public void getProgramState(Context context) {
Toast.makeText(context, ">>>"+this.programState , Toast.LENGTH_LONG).show();
}
問題:我不知道爲什麼會發生,但的onReceive()僅使用初始值是如此糟糕。任何想法?
如何註冊您的BroadcastReceiver? – 2014-09-28 08:30:46
@Leog:如果是你問的問題,像這樣: – 2014-09-28 08:32:00
<接收機機器人: 「IncomingSms 」名稱=> \t \t \t <意圖濾波器機器人:優先=「 1000 」> \t \t \t <動機器人:名稱=「 android.provider.Telephony.SMS_RECEIVED」 /> \t \t \t意圖濾波器> \t \t – 2014-09-28 08:32:39