【发布时间】:2011-06-01 05:01:38
【问题描述】:
我正在制作一个应用程序(实际上是一个后台服务),现在我想要一个用于该应用程序的小用户界面来设置用户名和密码。
谁能指导我如何为此创建一个界面,如果我想更改用户名和密码,在界面中再次打开该界面的策略是什么。
我不希望我的应用程序有任何启动器。
请指导!
【问题讨论】:
标签: android service android-service
我正在制作一个应用程序(实际上是一个后台服务),现在我想要一个用于该应用程序的小用户界面来设置用户名和密码。
谁能指导我如何为此创建一个界面,如果我想更改用户名和密码,在界面中再次打开该界面的策略是什么。
我不希望我的应用程序有任何启动器。
请指导!
【问题讨论】:
标签: android service android-service
我建议你创建 Activity 来设置用户名和密码。它不必是外部可用的启动器活动。然后,您可以使用服务中的 Intent 和 startActivity() 来触发它。
您将无法为结果启动活动,因此您需要在服务中进行一些回调才能在设置用户名/密码时继续。我在某个时候做的一件事是传递 Messenger 并将其用于回调。不过,从活动到服务,我以其他方式使用它,但我不明白为什么它不适用于您的情况。
【讨论】:
如果您希望用户能够打开它,您将需要一个启动器图标。在我之前的实现中,我刚刚实现了一个 PreferenceActivity,然后将首选项写入默认首选项文件。服务读取首选项并使用它来配置自己。
如果您真的不想要启动器图标,那么您可以创建一个将在特定意图上启动的活动,然后通过 ADB 发送这些意图(请参阅Adb shell commands to change settings or perform tasks on a phone 上的一些示例),或者您可以实现一些网络服务kind(作为服务的一部分运行 telnet 服务器或 http 服务器)并与其通信以使其启动管理活动。
【讨论】:
我从您的问题中了解到,如果以下情况是代码,您需要从Service 开始Activity,并且不要将此活动作为您的应用程序的启动器。
Intent mIntent = new Intent(getBaseContext(), Activity.class);
mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplication().startActivity(mIntent);
【讨论】:
基本上,带有布局的服务是一个活动。因此,您需要为您的应用程序创建一个具有您需要的布局的活动。然后,您可以通过单击按钮或类似的方式启动服务并完成活动。
【讨论】: