여러 activity에서 alarmmanager로 알람을 설정하고, 알람관리하는 메뉴에서 이 알람들을 취소할수 있도록 하기 위해서,알람을 설정한 activity들의 context를 불러오려고 합니다.
그런데 다른 activity의 context에 접근하는 과정에서 문제가 있어요.
AActivity에서는
private static Context context;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context=getApplicationContext();
...
}
public static Context getAppContext(){
return context;
}
이렇게 함수를 만들었고, BActivity에서는
Context context = AActivity.getAppContext();
final AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent=new Intent(context,AlarmReceiver.class);
intent.putExtra("message", msg);
final PendingIntent pIntent=PendingIntent.getBroadcast(context, alarm_idx,intent,PendingIntent.FLAG_UPDATE_CURRENT);
이렇게 불러왔어요.
근데 앱 실행후 한번이라도 AActivity에 들어갔다가 나왔으면 잘 불러와지지만, AActivity에 들어가지 않고 바로 BActivity로 왔을 경우에는 context에서 NullPointerException이 생깁니다. 해결책이 없을까요?