起動時にUIなしで起動し、ユーザーがアイコンをタップするとUIで再起動するアクティビティを作成したいと思います。このアクティビティの複数のインスタンスは必要ありません。ユーザーがアイコンをタップしたときに(アクティビティがすでに実行されている)、アプリが再起動され(UIを表示するため)、古いインスタンスが破棄されるようにするにはどうすればよいですか?「singleTask」はその仕事をしますか?
質問する
426 次
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>
ただし、プロセスを長時間実行したい場合は、フォアグラウンドサービスが必要です。
サービスを永続的な状態にする方法に関する素晴らしいドキュメントがあります。IntentServiceを実行するのは非常に簡単です。単一のメソッドをオーバーライドする必要がありますhttp://developer.android.com/reference/android/app/IntentService.html#onStartCommand(android.content.Intent、int、int)
次に、おそらくsharedpreferencesまたはデータベースにデータを保存すると、アクティビティがデータストアにアクセスします。
于 2012-08-06T06:48:16.033 に答える