((MainActivity)context).SaveFile(message);
message에는 현재시간과 문자가 들어갑니다
message = parseDate() + " 무음 모드" 이런식으로요
받는 함수는
public static Context mContext;
public void SaveFile(String str)
{
try {
FileOutputStream fos = openFileOutput("mymade.txt", Context.MODE_WORLD_READABLE);
fos.write(str.getBytes());
fos.close();
} catch (Exception e) {
android.util.Log.e("저장에러", e.toString());
}
}
이런식으로 되어있습니다
실행하면 파일을 저장할때 str이 NULL값이라 뜨면서 에러가 납니다.
str이 null이라고 뜨지는 않았을 것 같네요. 그렇단 얘기는 ((MainActivity)context).SaveFile(message); 에서 message가 null이란 얘긴데, message를 null 아닌 값으로 넘겼을테니 말이죠. 정말 null인 녀석이 뭔지 살펴보셔야 할 것 같고요. Context 객체는 public static으로 저장해 놓으시면 여러가지 문제를 야기할 수 있으니, 필요할 때 context를 얻어올 수 있는 적당한 방법을 찾으시는 게 맞을 것 같습니다. 윗분이 답변하신 것처럼 Util.Save(Context, String) 같은 static 함수를 만들어서 호출하면서 context를 넘겨주는 것도 방법이죠.
비 활성화된 액티비티에 있는 함수를 저런식으로 호출하는 것은 좋지 못합니다.
파일을 쓰는 함수라면 별도의 클래스를 만들고 함수 자체를 static로 만드시거나
bundle에 넣어서 Intent에 담아 액티비티를 이동하여 처리하시거나
onActivityResult로 받아서 처리하시는게 좋지 않을까 합니다.