java如何在服务中使用FirebaseListAdapter<String>?
我的应用程序中有一个Service
类,我必须在其中使用FirebaseListAdapter<String>
以下是MyService.java
文件:
public class MyService extends Service {
DatabaseReference firebaseDatabaseRef;
String followedBy;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
firebaseDatabaseRef = FirebaseDatabase.getInstance().getReferenceFromUrl("https://***-***.firebaseio.com/");
Toast.makeText(getBaseContext(), "Service started", Toast.LENGTH_SHORT).show();
FirebaseListAdapter<String> adapter = new FirebaseListAdapter<String>(this,
String.class, 安卓.R.layout.simple_expandable_list_item_1, firebaseDatabaseRef) {
@Override
protected void populateView(View v, String model, int position) {
followedBy = model.substring(30);
}
};
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(getBaseContext(), "Service stopped", Toast.LENGTH_SHORT).show();
}
}
但它无法编译,因为我遇到了以下错误:
Error:(133, 47) error: no suitable constructor found for FirebaseListAdapter(MyService,Class<String>,int,DatabaseReference)
constructor FirebaseListAdapter.FirebaseListAdapter(Activity,Class<String>,int,Query) is not applicable
(argument mismatch; MyService cannot be converted to Activity)
constructor FirebaseListAdapter.FirebaseListAdapter(Activity,Class<String>,int,DatabaseReference) is not applicable
(argument mismatch; MyService cannot be converted to Activity)
我应该用什么来代替this
中的FirebaseListAdapter<String>
来成功编译和运行我的代码
请告诉我
# 1 楼答案
请提供Firebase初始化和查询参考
你在片段中使用FirebaseListAdapter吗
this
指活动的上下文。如果在片段内部有FirebaseListAdapter
,那么使用getActivity()
而不是this
请检查我使用的以下代码。在本文中,我在Activity中初始化了FirebaseListAdapter
# 2 楼答案
活动是提供用户界面的应用程序组件。Service的文档说明:
FirebaseListAdapter支持显示Firebase数据库中的数据。它用于
Activity
。它不能用在Service
中。没有必要在Service
中使用它,因为服务没有用户界面(除了可选的通知)