解決できない 2 つのアクティビティに関する問題があります。
アラーム マネージャーでアラームをプログラムする A アクティビティがあり、3 秒後にアラーム レシーバーが終了ボタンのみを持つ B アクティビティを起動します。
A からアラーム マネージャーをプログラムし、[戻る] ボタンを押してこのアクティビティを終了すると、3 秒後に B アクティビティが表示されます。すべて正常です。問題は次のとおりです。ランチャーでアプリケーションを再度開くと、システムは A アクティビティを開始しますが、ホーム ボタンを長押ししてアプリケーションを起動すると (最近使用したタスク)、常に B アクティビティを開きます。B アクティビティが終了したら、どこからでもアプリケーションを再度開くと、A アクティビティが開く必要があります。
アクティビティ B に noHistory を追加しようとしましたが、問題は続きます。
A アクティビティのコードは次のとおりです。
public class ActivityA extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
Button b=(Button) findViewById(R.id.initTimer);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
programTimer();
}
});
}
private void programTimer() {
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, AlarmReciver.class);
PendingIntent pIntent = PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_CANCEL_CURRENT);
manager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+3000 , pIntent);
}
}
B 活動:
public class ActivityB extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
Button button= (Button) findViewById(R.id.bFinish);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
}
アラームレシーバー:
public class AlarmReciver extends android.content.BroadcastReceiver {
private static final String DEBUG_TAG="ReceptorAlarma";
@Override
public void onReceive(Context context, android.content.Intent intent) {
//lanzar activity
Intent i = new Intent(context, ActivityB.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
マニフェスト:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".ActivityA"
android:label="@string/title_activity_activity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ActivityB">
</activity>
<receiver android:name=".AlarmReciver" >
</receiver>
</application>
御時間ありがとうございます。