0

我想创建一个在启动时在没有 UI 的情况下启动并在用户点击图标时使用 UI 重新启动的活动。我不想要此活动的多个实例。我如何确保当用户点击图标(活动已在运行)时,应用程序将重新启动(以显示 UI),并且旧实例将被销毁?“singleTask”能胜任吗?

4

1 回答 1

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 或数据库中,您的活动将访问数据存储。

于 2012-08-06T06:48:16.033 回答