안드로이드 개발 질문/답변
(글 수 45,052)
현재 상황은
원래의도인 splash->browser호출 인데
지금은 browser호출->browser종료하면->splash->main화면
이렇게 나옵니다...
main.java는
package i.mall;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startActivity(new Intent(this, SplashActivity.class));
Intent i = new Intent(Intent.ACTION_VIEW);
Uri u = Uri.parse(http://www.st7mall.com);
i.setData(u);
startActivity(i);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startActivity(new Intent(this, SplashActivity.class));
Intent i = new Intent(Intent.ACTION_VIEW);
Uri u = Uri.parse(http://www.st7mall.com);
i.setData(u);
startActivity(i);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
이렇구요
splashactivity는
package i.mall;
import i.mall.R;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@SuppressLint("HandlerLeak")
public class SplashActivity extends Activity {
public class SplashActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Handler handler = new Handler () {
@Override
public void handleMessage(Message msg) {
finish();
}
};
handler.sendEmptyMessageDelayed(0, 2000);
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Handler handler = new Handler () {
@Override
public void handleMessage(Message msg) {
finish();
}
};
handler.sendEmptyMessageDelayed(0, 2000);
}
}
이렇습니다.
머가 어디서 꼬였는지...
수정할부분있으면 알려주세요 ㅠ
감사합니다.
2012.11.30 15:12:49
Intent i = new Intent(Intent.ACTION_VIEW);
Uri u = Uri.parse(http://www.st7mall.com);
i.setData(u);
startActivity(i);
이 소스를 그럼
Handler handler = new Handler (이부분) {
@Override
public void handleMessage(Message msg) {
finish();
}
};
handler.sendEmptyMessageDelayed(0, 2000);
}
new Handler( 여기 안에 그대로 넣음될까요?)
아님 따로 수정해서 넣어야 될까요;;;
완전 초보수준이라 이해가 잘안됩니다.ㅜ
혹시 예제로라도 알려주실수 있으신가요?
2012.11.30 15:37:32
Handler handler = new Handler () {
@Override
public void handleMessage(Message msg) {
finish();
Intent i = new Intent(Intent.ACTION_VIEW);
Uri u = Uri.parse(http://www.st7mall.com);
i.setData(u);
startActivity(i);
}
};
처럼~




현 소스가 실행됬을때 엑티비티 실행 순서는 의도 하신대로
SplashActivity 실행되고 브라우저가 실행 되는것이 맞습니다.
하지만 내부적으로 그런 순서대로 실행은 되나, 이게 화면에 보이지 않을뿐입니다.
만약 의도하신 것이 SplashActivity 가 2초간 보였다가 브라우저로 넘어가시는 것이라면
아래 소스 부분이 SplashActivity 클래스의 handleMessage 메서드 안으로 들어가야 될것 같네요.
Intent i = new Intent(Intent.ACTION_VIEW);
Uri u = Uri.parse(http://www.st7mall.com);
i.setData(u);
startActivity(i);