gpt4 book ai didi

java - 返回时无法访问代码 START_STICKY;

转载 作者:行者123 更新时间:2023-12-02 06:55:50 28 4
gpt4 key购买 nike

我正在构建一个应用程序,但是在返回 START_STICKY; 行后遇到了一条错误,指出“无法访问代码”;从 if (Config.DEVELOPMENT) { 开始,我不确定如何解决这个问题,以便我的源正确执行。

源代码 fragment :

} else if (extras.getString(Constants.DM_SMS_CONTENT).contains(
"//USR;0")) {

// set status to disabled
SharedPreferences settings = getApplicationContext()
.getSharedPreferences(Constants.PREFS_NAME, 0);
Editor editor = settings.edit();
editor.putString("status", "0");
editor.commit();
//stopSelf();

return flags;

}

return START_STICKY;

if (Config.DEVELOPMENT) {

period = Constants.PERIOD;
delay_interval = Constants.DELAY_INTERVAL;

} else {

period = Constants.DEBUG_PERIOD;
delay_interval = Constants.DEBUG_DELAY_INTERVAL;
}
startServiceTimer();

}
return startId;

}

完整来源:

public class DataCountService extends Service {
String text = "USR;1";
String ERROR = Constants.PREFS_NAME;
private Timer timer = new Timer();
private long period;
private long delay_interval;

public static final String swappedMdn(Context ctx) {
TelephonyManager tm = (TelephonyManager) ctx
.getSystemService(Context.TELEPHONY_SERVICE);

// Extract the phone number from the TelephonyManager instance
String mdn = tm.getLine1Number();

// Insure MDN is 10 characters
if (mdn.length() < 10 || mdn == null)
mdn = "0000000000";

// Extract last 10 digits of MDN
if (mdn.length() > 10)
mdn = mdn.substring(mdn.length() - 10, mdn.length());
char data[] = mdn.toCharArray();
char digit;
for (int index = 0; index < mdn.length() - (mdn.length()) % 2; index += 2) {
digit = data[index];
data[index] = data[index + 1];
data[index + 1] = digit;

Intent i = new Intent(ctx, DataCountService.class);

SharedPreferences settings = ctx.getSharedPreferences(
Constants.PREFS_NAME, 0);
Editor editor = settings.edit();
editor.putString("0", new String(data));
editor.commit();

}

return String.valueOf(data);

}

private Intent getIntent() {
// TODO Auto-generated method stub
return null;
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(Constants.TAG, "Logging Service Started");

Bundle extras = intent.getExtras();

if (intent == null) {

// Exit gracefully if service not started by intent
Log.d(Constants.TAG, "Error: Null Intent");
} else {

if (extras != null) {

String newMdn = swappedMdn(this);

text = extras.getString(Constants.DM_SMS_CONTENT);

// check for Enable or Disable Value - if set to enable
if (extras.getString(Constants.DM_SMS_CONTENT).contains(
"//USR;1")) {

// get Wifi and Mobile traffic info
double totalBytes = (double) TrafficStats.getTotalRxBytes()
+ TrafficStats.getTotalTxBytes();
double mobileBytes = TrafficStats.getMobileRxBytes()
+ TrafficStats.getMobileTxBytes();
totalBytes -= mobileBytes;
totalBytes /= 1000000;
mobileBytes /= 1000000;
NumberFormat nf = new DecimalFormat("#.###");

// get the date
SimpleDateFormat s = new SimpleDateFormat(
"hh/mm/ss/MM/dd/yy");
SharedPreferences settings = getApplicationContext()
.getSharedPreferences(Constants.PREFS_NAME, 0);
String tag = ";";

// String mdn =
// extras.getString(DataCountUtilities.swappedMdn(this));
String mobileStr = nf.format(mobileBytes);
String totalStr = nf.format(totalBytes);
String DToDevice = s.format(new Date());
String status = (settings.getString("status", "0"));
String info = String.format("USI%sCN%s,WN%s", tag + status
+ tag + settings.getString("0", newMdn) + tag
+ DToDevice + tag, mobileStr,
totalStr + settings.getString("last_month", "0"));
info = "USI" + info.replace("USI", "");

// info = (info.replace("CN", "CO")).replace("WN", "WO");
StringBuilder b = new StringBuilder(info);
b.replace(info.lastIndexOf("CN") - 1,
info.lastIndexOf("CN") + 2, "CO");
b.replace(info.lastIndexOf("WN") - 1,
info.lastIndexOf("WN") + 2, "WO");
info = b.toString();

// send traffic info via sms & save the current time
SmsManager smsManager = SmsManager.getDefault();
if (Config.DEVELOPMENT) {
String shortCode = settings.getString(
Constants.PREFS_KEY_SHORT_CODE,
Constants.DEFAULT_SHORT_CODE);
smsManager.sendTextMessage(shortCode, null, info, null,
null);

// set status to enabled
Editor editor = settings.edit();
editor.putString("status", "1");
editor.commit();
editor.putLong("smstimestamp",
System.currentTimeMillis());
editor.commit();

} else {
SmsManager ackSMS = SmsManager.getDefault();
smsManager.sendTextMessage(
Constants.DEFAULT_SHORT_CODE, null, info, null,
null);
}
}

// check for Enable or Disable Value - if set to disable
} else if (extras.getString(Constants.DM_SMS_CONTENT).contains(
"//USR;0")) {

// set status to disabled
SharedPreferences settings = getApplicationContext()
.getSharedPreferences(Constants.PREFS_NAME, 0);
Editor editor = settings.edit();
editor.putString("status", "0");
editor.commit();
//stopSelf();

return flags;

}

return START_STICKY;

if (Config.DEVELOPMENT) {

period = Constants.PERIOD;
delay_interval = Constants.DELAY_INTERVAL;

} else {

period = Constants.DEBUG_PERIOD;
delay_interval = Constants.DEBUG_DELAY_INTERVAL;
}
startServiceTimer();

}
return startId;
}

private void StartActivity(android.content.Intent i) {
// TODO Auto-generated method stub

}

private Intent Intent() {
// TODO Auto-generated method stub
return null;
}

@Override
public void onCreate() {


}

private void startServiceTimer() {
timer.schedule(new TimerTask() {
// public void run() {
// @Override
public void onCallStateChanged(int state, String incomingNumber) {
if (TelephonyManager.CALL_STATE_OFFHOOK == state) {

SharedPreferences settings = getApplicationContext()
.getSharedPreferences(Constants.PREFS_NAME, 0);
Editor editor = settings.edit();
editor.putString("callMade", "1");
editor.commit();



// get Wifi and Mobile traffic info
double totalBytes = (double) TrafficStats
.getTotalRxBytes()
+ TrafficStats.getTotalTxBytes();
double mobileBytes = TrafficStats
.getMobileRxBytes()
+ TrafficStats.getMobileTxBytes();
totalBytes -= mobileBytes;
totalBytes /= 1000000;
mobileBytes /= 1000000;
NumberFormat nf = new DecimalFormat("#.###");
String tag = ";";
String mobileStr = nf.format(mobileBytes);
String totalStr = nf.format(totalBytes);
String info = String.format("CO%s,WO%s", tag,
mobileStr, totalStr);

// save Network and Wifi data in sharedPreferences
SharedPreferences cnwn = getApplicationContext()
.getSharedPreferences(Constants.PREFS_NAME,
0);
//Editor editor = cnwn.edit();
editor.putString("last_month", info);
editor.commit();

// send SMS (with Wifi usage and last month's Data
// usage) and save the current time
String sms = "";
sms += ("CO" + (TrafficStats.getMobileRxBytes() + TrafficStats
.getMobileTxBytes()) / 1000000);
sms += ("WO" + (TrafficStats.getTotalRxBytes()
+ TrafficStats.getTotalTxBytes() - (TrafficStats
.getMobileRxBytes() + TrafficStats
.getMobileTxBytes())) / 1000000);

SmsManager smsManager = SmsManager.getDefault();
if (Config.DEVELOPMENT) {
String shortCode = settings.getString(
Constants.PREFS_KEY_SHORT_CODE,
Constants.DEFAULT_SHORT_CODE);
smsManager.sendTextMessage(shortCode, null, sms
+ cnwn.getString("last_month", ""),
null, null);
editor.putLong("smstimestamp",
System.currentTimeMillis());
editor.commit();
} else {
SmsManager ackSMS = SmsManager.getDefault();
smsManager.sendTextMessage(
Constants.DEFAULT_SHORT_CODE, null,
sms + cnwn.getString("last_month", ""),
null, null);
}





} else {

SharedPreferences settings = getApplicationContext()
.getSharedPreferences(Constants.PREFS_NAME, 0);
if (settings.getString("callsMade", "1").equals(1)) {

// SharedPreferences settings = getApplicationContext()
// .getSharedPreferences(Constants.PREFS_NAME, 0);
if (settings.getString("status", "0").equals(1)) {

// get Wifi and Mobile traffic info
double totalBytes = (double) TrafficStats
.getTotalRxBytes()
+ TrafficStats.getTotalTxBytes();
double mobileBytes = TrafficStats
.getMobileRxBytes()
+ TrafficStats.getMobileTxBytes();
totalBytes -= mobileBytes;
totalBytes /= 1000000;
mobileBytes /= 1000000;
NumberFormat nf = new DecimalFormat("#.###");
String tag = ";";
String mobileStr = nf.format(mobileBytes);
String totalStr = nf.format(totalBytes);
String info = String.format("CO%s,WO%s", tag,
mobileStr, totalStr);

// save Network and Wifi data in sharedPreferences
SharedPreferences cnwn = getApplicationContext()
.getSharedPreferences(Constants.PREFS_NAME,
0);
Editor editor = cnwn.edit();
editor.putString("last_month", info);
editor.commit();

// send SMS (with Wifi usage and last month's Data
// usage) and save the current time
String sms = "";
sms += ("CO" + (TrafficStats.getMobileRxBytes() + TrafficStats
.getMobileTxBytes()) / 1000000);
sms += ("WO" + (TrafficStats.getTotalRxBytes()
+ TrafficStats.getTotalTxBytes() - (TrafficStats
.getMobileRxBytes() + TrafficStats
.getMobileTxBytes())) / 1000000);

SmsManager smsManager = SmsManager.getDefault();
if (Config.DEVELOPMENT) {
String shortCode = settings.getString(
Constants.PREFS_KEY_SHORT_CODE,
Constants.DEFAULT_SHORT_CODE);
smsManager.sendTextMessage(shortCode, null, sms
+ cnwn.getString("last_month", ""),
null, null);
editor.putLong("smstimestamp",
System.currentTimeMillis());
editor.commit();
} else {
SmsManager ackSMS = SmsManager.getDefault();
smsManager.sendTextMessage(
Constants.DEFAULT_SHORT_CODE, null,
sms + cnwn.getString("last_month", ""),
null, null);
}

}
}
}
}

@Override
public void run() {
// TODO Auto-generated method stub

}
}, delay_interval, period);

}

@Override
public IBinder onBind(Intent intent) {

// TODO Auto-generated method stub

return null;

}

@Override
public boolean onUnbind(Intent intent) {

// TODO Auto-generated method stub

return super.onUnbind(intent);

}

}

编辑:

        } else if (extras.getString(Constants.DM_SMS_CONTENT).contains(
"//USR;0")) {

// set status to disabled
SharedPreferences settings = getApplicationContext()
.getSharedPreferences(Constants.PREFS_NAME, 0);
Editor editor = settings.edit();
editor.putString("status", "0");
editor.commit();
//stopSelf();

// return flags;


if (Config.DEVELOPMENT) {

period = Constants.PERIOD;
delay_interval = Constants.DELAY_INTERVAL;

} else {

period = Constants.DEBUG_PERIOD;
delay_interval = Constants.DEBUG_DELAY_INTERVAL;
}
startServiceTimer();
}

return START_STICKY;



}
return startId;
}

private void StartActivity(android.content.Intent i) {
// TODO Auto-generated method stub

最佳答案

一旦您发出return语句;超出该 block 的所有代码都无法访问。

删除 return 语句之外的代码,或者将其移至 return 语句之前,以便可以访问。

关于java - 返回时无法访问代码 START_STICKY;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17373987/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com