アラームマネージャーでイベントを作成するアプリケーションがあり、特定の時間に呼び出されます。コードは次のようになります
Intent intent = new Intent(this, AlarmActivity.class);
pendingIntent = PendingIntent.getActivity(this,req_code, intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am = (AlarmManager)getSystemService(Activity.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),AlarmManager.INTERVAL_DAY*7,
pendingIntent);
インテントはこのアクティビティを呼び出します。
public class AlarmActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void onStart(){
super.onStart();
//Change ringer mode
//Add notification in status bar
//Other booring stuff here...
Toast.makeText(this,"Finishing",2000).show();
finish();
}
}
退屈なものには、バックグラウンドで実行する必要があるコードがあります(リンガーモードの変更)
1つのことを除いて、すべてがうまくいきます。アラーム マネージャーがアクティビティを呼び出すたびに、アプリケーションがフォアグラウンドになります。バックグラウンドで呼び出し音モードを変更し、ステータスバーに通知を追加するだけの場合。
アプリケーションがフォアグラウンドにならないようにする方法はありますか?