我想创建一个在启动时无UI启动的活动,并在用户点击图标时重新启动UI。 我不想要这个活动的多个实例。 我如何确保当用户点击图标(活动已在运行)时,应用程序将重新启动(以显示UI),旧实例将被销毁? “singleTask”会完成这项工作吗?
答案 0 :(得分:0)
singleTask是活动所需要的,可以防止多次加载。
要在设备启动时触发某些内容,您需要侦听启动;
public class BootReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
startService(this, new Intent(Intent.ACTION_SYNC, null, this, SomeIntentService.class);
}
}
带有类似的清单;
<receiver android:name="BootReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
但是如果你想让任何进程长时间运行,你需要一个前台服务;
http://developer.android.com/reference/android/app/Service.html#startForeground(int,android.app.Notification)
有关于如何让您的服务进入持久状态的精彩文档。获取IntentService非常简单,只需要覆盖单个方法http://developer.android.com/reference/android/app/IntentService.html#onStartCommand(android.content.Intent,int,int)
然后将数据存储在sharedpreferences或数据库中,您的活动将访问数据存储。