Android アプリのスプラッシュを作成したいと思います。この機能は、アプリが開いているときに、最初にスプラッシュ ページを表示することです。GPS から最初のデータを取得するまでは、メインのアクティビティに変わります。logcat によって報告された私のコードの wait() にいくつかの問題があります。
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;
public class splash extends Activity
{ int waittime;
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.splash);
final TextView text=(TextView)findViewById(R.id.textView1);
text.setText("Waiting for the GPS data update!");
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
String provider = locationManager.GPS_PROVIDER;
int c=0;
for(int i=0; i<20;i++)
{
Location location = locationManager.getLastKnownLocation(provider);
//get the location data from every loop
if(location!=null)//if get the data, then turn to the main activity
{
new Handler().postDelayed(new Runnable() {
public void run() {
Intent mainIntent = new Intent(splash.this, MainActivity.class);
splash.this.startActivity(mainIntent);
splash.this.finish();
}
}, 1000);
}
else
{
try {
wait(3000);//if not get the data, wait 3 seconds until the next loop
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
logcat 情報は次のとおりです。