2016-07-06 41 views
-1

我是Android應用程序開發新手。我正在開發一個應用程序,其中我有一個接收器類。我厭倦了if語句。即使條件滿足,它內部的代碼也不會執行。以下是我的代碼:即使在條件滿足的情況下也不能工作的代碼

MyReceiver.java

package eg.app7; 

import android.app.admin.DevicePolicyManager; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.util.Log; 
import android.widget.Toast; 

public class MyReceiver extends BroadcastReceiver { 
public static boolean screenOff; 
DevicePolicyManager dpm; 

SharedPrefs sharedPrefs; 



public MyReceiver() { 
} 

@Override 
public void onReceive(Context context, Intent intent) { 
    //Toast.makeText(context,"Changed",Toast.LENGTH_SHORT).show(); 

    System.out.println("onReceive "); 
    if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { 
     screenOff = true; 
    } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { 
     screenOff = false; 
    } 


    // The below if statement is my problem 
    if(sharedPrefs.getBoolValue(context,"hhmmkey")) { 
     Intent i = new Intent(context, TimePinService.class); 
     context.startService(i); 
    } 



    } 
} 

請指引我在哪裏,我錯了

+0

不好意思,你收到了一些錯誤信息?如果您將上次提交更改爲** context.startActivity(i); **?哦,我現在看到,這是一項服務... – statosdotcom

+0

不,我沒有收到任何錯誤消息。這應該是context.startService(i); –

+0

你的舒適條件是否滿足?在那裏敬酒敬酒檢查。 – statosdotcom

回答

0

你確定你添加ACTION_SCREEN_OFFACTION_SCREEN_ON到的IntentFilter?

public void registerMyReceiver() { 
    MyReceiver myReceiver = new MyReceiver(); 
    IntentFilter intentFilter = new IntentFilter(); 

    intentFilter.addAction(Intent.ACTION_SCREEN_OFF); 
    intentFilter.addAction(Intent.ACTION_SCREEN_ON); 

    registerReceiver(myReceiver, intentFilter); 
} 
0

感謝您的所有建議傢伙。但我找到了一個很好的解決方案我已經將if塊放入服務類中,然後由接收者類啓動該服務。效果很好!

相關問題