지식메모/안드로이드 Android
안드로이드 Intent로 액티비티 시작시 에러 android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag 해결
yonoo
2017. 7. 17. 17:28
반응형
인텐트로 다른 액티비티를 시작하고자 했는데 에러가 발생
startActivity(it); //에러 발생
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | // input your code herepublic class AlwaysTopServiceTouch extends Service { private View mView; private WindowManager mManager; private WindowManager.LayoutParams mParams; private float mTouchX, mTouchY; private int mViewX, mViewY; private boolean isMove = false; Intent it = new Intent(this, DBActivity.class); private OnTouchListener mViewTouchListener = new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: isMove = false; mTouchX = event.getRawX(); mTouchY = event.getRawY(); mViewX = mParams.x; mViewY = mParams.y; break; case MotionEvent.ACTION_UP: if (!isMove) { // Toast.makeText(getApplicationContext(), "???", // Toast.LENGTH_SHORT).show(); startActivity(it); //에러 발생 } | cs |
에러 코드는
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
플래그 어쩌구 저쩌구 FLAG_ACTIVITY_NEW_TASK 이게 요구된다는데
확인결과
서비스는 태스크가 없기 때문에 액티비티를 시작하려면 new task 플래그를 줘야 한다고 한다.
그래서 코드수정
startActivity(it) 를
startActivity(it.addFlags(FLAG_ACTIVITY_NEW_TASK));
위와 같이 수정하니 에러가 발생하지 않았다.
반응형