通过service实现姓名学号显示。要求service通过logcat显示学号姓名
时间: 2024-04-29 22:22:07 浏览: 11
首先,创建一个 Service 类,并在其中实现获取姓名和学号的方法。具体代码如下:
```java
public class NameIDService extends Service {
private String name = "小明";
private String id = "20210001";
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d("NameIDService", "姓名:" + name + ",学号:" + id);
return super.onStartCommand(intent, flags, startId);
}
public String getName() {
return name;
}
public String getId() {
return id;
}
}
```
在 `onStartCommand()` 方法中,通过 Logcat 显示姓名和学号。在主 Activity 中,我们可以通过 `bindService()` 方法绑定该 Service,并调用其中的方法获取姓名和学号,并且将其显示在界面上。具体代码如下:
```java
public class MainActivity extends AppCompatActivity {
private TextView nameTextView;
private TextView idTextView;
private NameIDService nameIDService;
private ServiceConnection serviceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
NameIDService.LocalBinder binder = (NameIDService.LocalBinder) iBinder;
nameIDService = binder.getService();
nameTextView.setText(nameIDService.getName());
idTextView.setText(nameIDService.getId());
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
nameIDService = null;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nameTextView = findViewById(R.id.name_text_view);
idTextView = findViewById(R.id.id_text_view);
Intent intent = new Intent(this, NameIDService.class);
bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
}
@Override
protected void onDestroy() {
super.onDestroy();
unbindService(serviceConnection);
}
}
```
在 `onCreate()` 方法中,我们将 `nameTextView` 和 `idTextView` 与布局文件中的 TextView 控件绑定。然后,我们创建一个 Intent 对象,并使用 `bindService()` 方法将其与 Service 绑定。在 `onServiceConnected()` 方法中,我们将 Service 对象赋值给 `nameIDService`,并且通过调用其中的方法获取姓名和学号,将其显示在 TextView 上。在 `onDestroy()` 方法中,我们解除与 Service 的绑定。