마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

최상위 View에서 intent로 다른 Activity 불러오기

0 추천
public class AlwaysOnTopService extends Service {
	private Button mPopupView;
	private WindowManager.LayoutParams mParams;
	private WindowManager mWindowManager;


	private OnTouchListener mViewTouchListener = new OnTouchListener() {
		@Override public boolean onTouch(View v, MotionEvent event) {
			if(event.getAction() == MotionEvent.ACTION_DOWN)
			{
				Intent intent = new Intent(AlwaysOnTopService.this,Main.class);
				startActivity(intent);

			}
			
			return true;
		}
	};
	
	@Override
	public IBinder onBind(Intent arg0) { return null; }
	
	@Override
	public void onCreate() {
		super.onCreate();

		mPopupView = new Button(this);
		mPopupView.setBackgroundColor(Color.argb(255, 255 , 255, 255));						
		
		mPopupView.setOnTouchListener(mViewTouchListener);								

		mParams = new WindowManager.LayoutParams(
			WindowManager.LayoutParams.MATCH_PARENT,
			WindowManager.LayoutParams.WRAP_CONTENT,
			WindowManager.LayoutParams.TYPE_PHONE,					
			WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
			PixelFormat.TRANSLUCENT);										
		mParams.gravity = Gravity.TOP;				

		mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
		mWindowManager.addView(mPopupView, mParams);		
	}




	@Override
	public void onDestroy() {
		if(mWindowManager != null) {	
			if(mPopupView != null) mWindowManager.removeView(mPopupView);
		}
		super.onDestroy();
	}
}

 

다음과 같이 코드를 짰는데 버튼에 대한 터치이벤트를 가하면 에러가 자꾸나네요 ㅠㅠ 뭐가 문제일까요 ㅠㅠ

안드로이드완전초짜 (250 포인트) 님이 2015년 11월 26일 질문

1개의 답변

0 추천
 
채택된 답변
activity 실행시에 new task 플래그를 추가하셔야될꺼 같은데요?

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
라쎄린드 (25,460 포인트) 님이 2015년 11월 27일 답변
안드로이드완전초짜님이 2015년 11월 30일 채택됨
...