当应用在后台运行时用户点按应用图标会发生什么?

时间:2012-08-06 06:25:50

标签: android

我想创建一个在启动时无UI启动的活动,并在用户点击图标时重新启动UI。 我不想要这个活动的多个实例。 我如何确保当用户点击图标(活动已在运行)时,应用程序将重新启动(以显示UI),旧实例将被销毁? “singleTask”会完成这项工作吗?

1 个答案:

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