我剛開始使用BroadcastReceiver(這可能是我的問題)。我試圖創建一個服務的視圖(是的,是的,我知道你不能),所以我發送請求到一個看不見的活動,以創建一個可見的視圖,當我需要。它不工作,因爲我想要所以我看着BroadcastReceivers。到目前爲止,所有事情都與我無法將我的getStringExtra值與任何東西進行比較的異常一起工作。例)說我想通過變量「param」的值爲String「CREATE」到我的BroadcastReceiver。它到達我的接收器罰款和logcat我可以看到,確實方法是「創建」。但如果我想檢查什麼參數與if語句if(param ==「CREATE」)它永遠不會進入if。那麼我在這裏做錯了什麼?intent.getStringExtra不可比
public class Receiver extends BroadcastReceiver{
@Override
public void onReceive(Context c, Intent i) {
String stuff = i.getStringExtra("param");
log(stuff);
if (stuff=="CREATE"){
log("why dem feels");
}
if((String)i.getStringExtra("method")=="CREATE"){
log("i dont know what im doing");
}
log("FOR SOME REASON ITS SKIPPING THIS STEP");
}
//set of logs so that i dont have to keep specifying tags and shit
public void log(int in){
Log.d("TAG OF INTEGERS",Integer.toString(in));
}
public void log(String s){
Log.d("Receiver",s);
}
public void log(float f){
log((int) f);
}
}
這是我用我的服務代碼發送廣播
Intent i = new Intent();
i.setClassName("com.example.starteroverlay","com.example.starteroverlay.Receiver");
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
String methodCall = "CREATE";
i.putExtra("param",methodCall);
//
sendBroadcast(i);
,只是因爲我想你們會希望看到我的清單部分的代碼
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<receiver android:name=".Receiver">
<intent-filter android:priority="0">
<action android:name="android.intent.action.MAIN"/>
</intent-filter>
</receiver>
的可能重複[怎麼辦我比較Java中的字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –
刪除'i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);'這不需要接收器。 –