Splash Activity.Java
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import static com.saqib.app2.RetryActivity.SOURCE;
import static com.saqib.app2.RetryActivity.SPLASH;
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(!Utils.isInternetConnection(this)){
Intent intent = new Intent(SplashActivity.this, RetryActivity.class);
intent.putExtra(SOURCE, SPLASH);
startActivity(intent);
finish();
return;
}
setContentView(R.layout.activity_main);
}
}
联系activity.java
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import static com.saqib.app2.RetryActivity.CONTACT;
import static com.saqib.app2.RetryActivity.SOURCE;
import static com.saqib.app2.RetryActivity.SPLASH;
public class ContactActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(!Utils.isInternetConnection(this)){
Intent intent = new Intent(ContactActivity.this, RetryActivity.class);
intent.putExtra(SOURCE, CONTACT);
startActivity(intent);
finish();
return;
}
setContentView(R.layout.activity_contact);
}
}
Utils.Java
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class Utils {
public static boolean isInternetConnection(Context context){
ConnectivityManager cm =(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
activeNetwork.isConnectedOrConnecting();
return isConnected;
}
}
RetryActivity.java(用于重试到指定的活动)
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Switch;
public class RetryActivity extends AppCompatActivity {
public static final String SPLASH = "SPLASH";
public static final String CONTACT = "CONTACT";
public static final String SOURCE = "SOURCE";
Button btnRetry;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_retry);
Intent intent = getIntent();
final String source = intent.getExtras().getString(SOURCE);
btnRetry = findViewById(R.id.btnRetry);
btnRetry.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(Utils.isInternetConnection(RetryActivity.this)) {
switch (source) {
case SPLASH:
startActivity(new Intent(RetryActivity.this, SplashActivity.class));
finish();
break;
case CONTACT:
startActivity(new Intent(RetryActivity.this, ContactActivity.class));
finish();
break;
}
}
}
});
}
}
使用 Intent 发送和接收来自splash 或contact 的数据。
Intent intent = getIntent();
final String source = intent.getExtras().getString(SOURCE);
这是获取历史的魔法。它来自哪里。