将数据从 activity 传递到服务? Android
Pass data from activity to service ? Android
我可以通过 Intent
向 Service
传递多少数据。我将 7 个数据传递给 Service
但后两个是 null
.
此代码在 MainActivity.class
:
Intent Class = new Intent(MainActivity.this, Class_Service.class);
Class.putExtra("Url", URL);
Class.putExtra("Username", Username);
Class.putExtra("PASSWORD", PASSWORD);
Class.putExtra("Mobile", Mobile);
Class.putExtra("HQStudentID", HQStudentID);
Class.putExtra("_SchoolCode", SchoolCode);
Class.putExtra("_GroupID", GroupID);
这是我的 Service
:
public class Class_Service extends Service{
String Webresponse;
String URL ;
String Username;
String PASSWORD;
String Mobile;
String HQStudentID;
String SchoolCode;
String GroupID;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onStart(Intent intent, int startId) {
handleStart(intent, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
handleStart(intent, startId);
return START_NOT_STICKY;
}
void handleStart(Intent intent, int startId) {
URL = intent.getStringExtra("Url");
Username = intent.getStringExtra("Username");
PASSWORD = intent.getStringExtra("PASSWORD");
Mobile = intent.getStringExtra("Mobile");
HQStudentID = intent.getStringExtra("HQStudentID");
GroupID = intent.getStringExtra("_GroupID");
SchoolCode = intent.getStringExtra("_SchoolCode");
Log.i("test", "HERE : : :" + GroupID + "::" + SchoolCode);
}
}
所有参数都有值,但 GroupID
和 SchoolCode
是 null
!!!
当我从 MainActivity
传递 GroupID
和 SchoolCode
时,它们具有价值。
有 2 种情况可能会导致此问题:
1 : 您正在尝试发送一个整数并尝试将其作为服务上的字符串获取。检查数据类型,如果有任何错误,请修复。
2 : 数据可能为空。在 Logcat 上的 putExtra 之前检查所有数据,以查看它们都有一些值。
希望对您有所帮助。
最好的,
麦克.
如果您要传递整数,请使用 intent.getIntExtras("tag"),对于字符串 intent.getStringExtra("tag").
我可以通过 Intent
向 Service
传递多少数据。我将 7 个数据传递给 Service
但后两个是 null
.
此代码在 MainActivity.class
:
Intent Class = new Intent(MainActivity.this, Class_Service.class);
Class.putExtra("Url", URL);
Class.putExtra("Username", Username);
Class.putExtra("PASSWORD", PASSWORD);
Class.putExtra("Mobile", Mobile);
Class.putExtra("HQStudentID", HQStudentID);
Class.putExtra("_SchoolCode", SchoolCode);
Class.putExtra("_GroupID", GroupID);
这是我的 Service
:
public class Class_Service extends Service{
String Webresponse;
String URL ;
String Username;
String PASSWORD;
String Mobile;
String HQStudentID;
String SchoolCode;
String GroupID;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onStart(Intent intent, int startId) {
handleStart(intent, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
handleStart(intent, startId);
return START_NOT_STICKY;
}
void handleStart(Intent intent, int startId) {
URL = intent.getStringExtra("Url");
Username = intent.getStringExtra("Username");
PASSWORD = intent.getStringExtra("PASSWORD");
Mobile = intent.getStringExtra("Mobile");
HQStudentID = intent.getStringExtra("HQStudentID");
GroupID = intent.getStringExtra("_GroupID");
SchoolCode = intent.getStringExtra("_SchoolCode");
Log.i("test", "HERE : : :" + GroupID + "::" + SchoolCode);
}
}
所有参数都有值,但 GroupID
和 SchoolCode
是 null
!!!
当我从 MainActivity
传递 GroupID
和 SchoolCode
时,它们具有价值。
有 2 种情况可能会导致此问题:
1 : 您正在尝试发送一个整数并尝试将其作为服务上的字符串获取。检查数据类型,如果有任何错误,请修复。
2 : 数据可能为空。在 Logcat 上的 putExtra 之前检查所有数据,以查看它们都有一些值。
希望对您有所帮助。
最好的, 麦克.
如果您要传递整数,请使用 intent.getIntExtras("tag"),对于字符串 intent.getStringExtra("tag").