![](/img/trans.png)
[英]Android BroadcastReceiver's onReceive sometimes not called
[英]Android BroadcastReceiver's onReceive not called when internet is OFF in redmi 2
當我的互聯網連接關閉時,廣播接收器不起作用,但是當我的互聯網連接時,廣播接收機可以正常工作。
我已在我的應用程序的安全設置中啟用了自動啟動。 我還重新啟動了Redmi / note3,在某些redmi2中,它工作正常。
無論是離線還是在線,但在某些redmi2手機中,它完全無法正常工作
public void timerTask(final Context ctx){
Log.e("calling...","timer...");
Timer t= new Timer();
t.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
try {
Log.e("in try","catch...");
ConnectivityManager connectivityManager = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
/*if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ||
connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED)*/
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isAvailable()){
//we are connected to a network
Log.e("timeTask","executing...");
try{my_details = new Database_Check_In_Helper(ctx);}catch (NullPointerException npe){npe.printStackTrace();}
Cursor res = my_details.call_log1();
// StringBuffer buffer = new StringBuffer();
while (res.moveToNext()) {
String phNum = res.getString(0);
String callType = res.getString(1);
String callDate = res.getString(2);
String callDuration = res.getString(3);
String phoneId = res.getString(4);
// String dtStart = "2010-10-15T09:27:37Z";
/* Date date = null;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
try {
date = format.parse(callDate);
Log.e("datefor",""+date);
*//*System.out.println(date);*//*
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
DateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy");
Date date=null;
try {
date = (Date) formatter.parse(callDate);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
String formatedDate = cal.get(Calendar.DATE) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.YEAR);
Log.e("formatedDate",""+formatedDate);
}catch (ParseException pe){pe.printStackTrace();}
/* SimpleDateFormat sdf3 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
Date d1 = null;
try{
d1 = sdf3.parse(callDate);
}catch (Exception e){ e.printStackTrace(); }*/
Log.e("data are",phNum+" "+callType+" "+date+" "+callDuration+" "+phoneId);
String url = "http://www.rentmystay.com/m/call_tracking_log";
ServiceNetworkConnection snc = new ServiceNetworkConnection(phNum, callType, date, callDuration, phoneId);
snc.execute(url);
}
}else{
Log.e("internet","not connected");
}
}catch (NullPointerException npe){
Log.e("npe ","come under excep");
npe.printStackTrace();
}
}
},0,5000);
}
顯然,在檢查Internet連接時,應檢查activeNetwork的isConnected()方法。
ConnectivityManager connectivityManager = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isAvailable() && networkInfo.isConnected()){
// Network Active
}else{
// Network Inactive
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.