如何解决Android,带有UI管理器的后台服务
我遇到后勤问题。我对android / java不太熟悉(我制作了一些显示蓝牙设备的简单UI应用程序,仅此而已)。 正在考虑对本机进行反应,但似乎不合适。 我要制作后台服务,该服务将自动连接到蓝牙设备,并处理数据的进出,还需要无限期地运行并在启动后运行。 但是我还需要一些UI进行设置,例如选择Bluetooth设备,或通过该服务/ BT连接传输自定义消息。
那有可能吗? 我见过类似的应用,例如自定义通知应用。 如何实现,是否可以通过UI与服务进行通信?
我只需要一些方向或关键字,而不是寻找现成的解决方案。 谢谢。
解决方法
您需要为Android使用XML资源文件布局。那就是你的用户界面。
https://developer.android.com/guide/topics/ui/declaring-layout 阅读此书,如果您还不熟悉android,请选择developer.android.com,因为它是您最好的朋友。
您将像在android中学习Java一样学习XML。它随处可见。
示例布局代码:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/colorPrimary"
>
<TextView
android:id="@+id/mainheader"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="1dp"
android:text="@string/greetings"
android:background="@color/colorAccent"
android:textAlignment="center"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/buttonMainMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/menu"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/mainheader" />
<Button
android:id="@+id/buttonMortgageCalculator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Mortgage Calculator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toEndOf="@+id/buttonMainMenu"
app:layout_constraintTop_toBottomOf="@+id/mainheader" />
<Button
android:id="@+id/buttonTest"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Test"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/buttonMortgageCalculator"
app:layout_constraintTop_toBottomOf="@+id/mainheader" />
<TextView
android:id="@+id/homePageDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/homeDescription"
android:background="@color/colorAccent"
android:textAlignment="center"
app:layout_constraintBottom_toTopOf="@+id/imageView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/buttonMortgageCalculator"
app:layout_constraintVertical_bias="0.0" />
<ImageView
android:id="@+id/imageView"
android:layout_width="393dp"
android:layout_height="380dp"
android:cropToPadding="true"
android:src="@drawable/tobiasmealeyhouse"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
然后在您的main.activity中: Java代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Go to Main Menu
Button mainmenu = findViewById(R.id.buttonMainMenu);
mainmenu.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent goToMenuIntent = new Intent(view.getContext(),MainActivity.class);
startActivityForResult(goToMenuIntent,0);
}
});
//Go to Mortgage Calculator
Button mortgagecalculator = findViewById(R.id.buttonMortgageCalculator);
mortgagecalculator.setOnClickListener(new View.OnClickListener(){
public void onClick(View view) {
Intent mortgageCalculatorIntent = new Intent(view.getContext(),MortgageCalculator.class);
startActivityForResult(mortgageCalculatorIntent,0);
}
});
//Go to test
Button test = findViewById(R.id.buttonTest);
test.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent goToTestIntent = new Intent(view.getContext(),Test.class);
startActivityForResult(goToTestIntent,0);
}
});
}
从本质上讲,您将使用包含在XML文件中创建的对象的按钮和EditText框来构建UI,然后使用Java对其进行编程以完成您想要进行的通信。
,由于我是第一次误解了你的意思,所以我只剩下那个答案,然后再写一个新的答案。
有一篇关于它的文章,为您提供了UI。然后,您可以通过小部件在用户主屏幕上的小部件中与后端服务进行交互。
在阅读了有关小部件的知识之后,对小部件的设计及其需要执行的操作有了一个了解: https://www.tutorialspoint.com/android/android_bluetooth.htm 这使您开始了解蓝牙数据传输的工作方式。您将使用诸如蓝牙适配器之类的库,并调用特定的类来处理应用程序的蓝牙功能。
最后,如果您需要后端存储,请查看android用于设备存储的SQLite数据库。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。