버튼이있는 활동이 있습니다. 버튼을 클릭하면 새로운 활동이 시작되고이 활동에서 다양한 데이터가 웹에서 가져옵니다.하지만 버튼을 클릭하면 첫 번째 활동이 3 ~ 4 초 후 두 번째 활동은 준비된 데이터로 시작됩니다. 두 번째 활동이 표시되기 전에 앱에서 데이터를 가져 오려고 시도합니다. 그러나 첫 번째로 두 번째 활동을 사용자가 볼 수있게하려는 후 가져 오는 데이터를 시작해야합니다. 나는 활동의 라이프 사이클을 조사하고 ONSTART()로 가져 오는하지만 난 그렇게 할 수있는 방법Android 액티비티가 표시된 후 무언가하기
@Override
protected void onStart() {
super.onStart();
//Fetch data
}
를 작동하지 않는 한 바뀌? 여기
내 모든 코드 (단지 두 번째 활동)이다 : 위의 코드와public class GuzergahActivity extends android.support.v4.app.FragmentActivity{
private GoogleMap map;
private GuzergahOverlay overlay;
private WebView webview;
private ImageView imageview;
private ProgressDialog dialog;
private int flag;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
overridePendingTransition(0, 0);
setContentView(R.layout.guzergah);
flag=this.getIntent().getExtras().getInt("flag");
setUpMapIfNeeded();
setUpView();
}
@Override
protected void onResume() {
super.onResume();
setUpMapIfNeeded();
}
@Override
protected void onDestroy() {
if (dialog!=null) {
dialog.dismiss();
}
super.onDestroy();
}
private void setUpMapIfNeeded() {
// Do a null check to confirm that we have not already instantiated the map.
if (map == null) {
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.guzergah_fragment)).getMap();
if(map!=null){
setUpMap();
}
}
}
private void setUpMap(){
try {
String result=new MyNewTask().execute().get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
overlay.setOverlay(map);
map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(39.910526,32.804435),15));
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
}
private void setUpView() {
//Binding imageview,webview...and setting up their features
}
private class MyNewTask extends AsyncTask<String,Integer,String>
{
@Override
protected void onPreExecute()
{
dialog= new ProgressDialog(GuzergahActivity.this);
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.setMessage("Downloading! Please wait...!");
dialog.show();
}
@Override
protected String doInBackground(String... params)
{
/* Fetching data is in this class - GuzergahOverlay*/
overlay = new GuzergahOverlay(flag);
return "Done";
}
@Override
protected void onPostExecute(String result)
{
super.onPostExecute(result);
Log.i("result","" +result);
if(result!=null){
dialog.dismiss();
}
}
} //end MyNewTask
}
public class GuzergahOverlay {
private MarkerOptions beytepe_kampusu;
private MarkerOptions sihhiye_kampusu;
private ArrayList<PolylineOptions> lines;
private ArrayList<MarkerOptions> stops;
public GuzergahOverlay(int mode) {
beytepe_kampusu=new MarkerOptions().position(new LatLng(39.87159,32.735435)).title("Hacettepe Üniversitesi Beytepe Yerleşkesi").icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_beytepe));
sihhiye_kampusu=new MarkerOptions().position(new LatLng(39.931599,32.862365)).title("Hacettepe Üniversitesi Sıhhıye Yerleşkesi").icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_sihhiye));
getLinesAndStops(mode); //Here is fetching geopoint and preparing lines and stops arraylists
}
private void getLinesAndStops(int mode) {
// Fetching data from Parse.com
// Fillinp up lines and stops arraylists
}
public void setOverlay(GoogleMap map){
map.addMarker(beytepe_kampusu);
map.addMarker(sihhiye_kampusu);
for(PolylineOptions polyline : lines){
map.addPolyline(polyline);
}
for(MarkerOptions marker : stops){
map.addMarker(marker);
}
}
}
, I 버튼을 클릭, 첫 번째 활동은 잠시 동안 보유 및 데이터 finished.Progress 대화 상자를 가져 오는 경우 두 번째 활동은 볼 수 있습니다 몇 밀리 초 동안 표시됩니다.
두 번째 활동에있는 나의 진행 표시가 성공했다면 –