Android 为什么我以前的活动在安卓系统中点击应用程序的后退按钮后会自动刷新?
说明: 我的申请有两个活动,即总结卡和记分卡。其中,我启用了这个getSupportActionBar().setDisplayHomeAsUpEnabled(true);在最后一个活动中,根据给定的名称 我通过Intent将数据从Summary\u card传递到GetValue.java。我还通过Intent将数据从GetValue.java传递到Score\u card。在Score\u card中,我得到了从GetValue.java发送的数据。我解释了我的整个情节 Getvalue是一个类而不是一个活动 根据我实现的场景解释我将遇到的问题 当我按下位于actionBar上的记分卡的后退按钮时。我刷新了我的总结卡,我指的是我以前的活动。同样,当我按下设备(移动设备)的后退按钮时,我以前的总结卡活动没有刷新 在按下位于actionBar上的当前活动(记分卡)的后退按钮(而不是设备后退按钮)后,我不想刷新以前的(总结卡)活动 这个问题的解决办法是什么 这是我的总结卡。Summary_卡将数据提供给GetValue.java类Android 为什么我以前的活动在安卓系统中点击应用程序的后退按钮后会自动刷新?,android,Android,说明: 我的申请有两个活动,即总结卡和记分卡。其中,我启用了这个getSupportActionBar().setDisplayHomeAsUpEnabled(true);在最后一个活动中,根据给定的名称 我通过Intent将数据从Summary\u card传递到GetValue.java。我还通过Intent将数据从GetValue.java传递到Score\u card。在Score\u card中,我得到了从GetValue.java发送的数据。我解释了我的整个情节 Getvalue是一
public class SummaryCard extends AppCompatActivity {
Toolbar toolbar;
Button btnFullScore;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_summary_card);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Intent extras = getIntent();
btnFullScore = (Button) findViewById(R.id.FullScore);
btnFullScore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
GetValue gv = new GetValue(getApplicationContext());
gv.setFullUrl(match_key);
gv.setAccessToken(access_token);
gv.execute();
}
});
}
}
public class GetValue extends AsyncTask<String,String,String> {
private static String url="";
String match_type="";
String[] tab_title;
String[] team_name;
String bat_order="",jsonStr="";
String tabTeamname="";
String name_of_team="";
String tabData="";
String match_key="";
List<String> lst_overview=null;
public String access_token="";
public String accessToken="";
String st_overview="",short_name="",msg_info="";
Context context;
public String tabVlaue="";
public GetValue(Context context)
{
this.context=context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
match_key=getFullUrl();
accessToken=getAccessToken();
url="https://api.litzscore.com/rest/v2/match/"+match_key+"/?access_token="+accessToken;
// url="http://10.0.2.2/JSON/SaEngfullcard.php";
jsonStr=new CallAPI().GetResponseGetMethod(url);
if(jsonStr!=null){
try {
JSONObject mainObject = new JSONObject(jsonStr);
JSONObject dataObject = mainObject.getJSONObject("data");
JSONObject cardObject = dataObject.getJSONObject("card");
lst_overview=new ArrayList<>();
if(cardObject.getString("status_overview").equals("abandoned")){
if(!cardObject.isNull("msgs")) {
JSONObject msgs=cardObject.getJSONObject("msgs");
msg_info=msgs.getString("info");
}
st_overview=cardObject.getString("status_overview");
short_name=cardObject.getString("short_name");
}
else {
match_type = cardObject.getString("format");
JSONArray batting_order = cardObject.getJSONArray("batting_order");
JSONObject innings = cardObject.getJSONObject("innings");
JSONArray inn_arr = innings.names();
for (int i = 0; i < batting_order.length(); i++) {
JSONArray ining_arr = batting_order.getJSONArray(i);
tabTeamname += ining_arr.getString(0) + ":";
for (int j = 0; j < ining_arr.length(); j++) {
if (j == 0) {
tabVlaue += ining_arr.getString(j) + "_";
}
if (j == 1) {
tabVlaue += ining_arr.getString(j);
}
}
tabVlaue += ",";
bat_order = tabVlaue;
}
tab_title = bat_order.split(",");
if (match_type.equals("test") || match_type.equals("one-day")) {
for (int j = 0; j < tab_title.length; j++) {
for (int k = 0; k < inn_arr.length(); k++) {
if (tab_title[j].equals(inn_arr.getString(k))) {
tabData += innings.getJSONObject(inn_arr.getString(k)) + "`";
}
}
}
}
if (match_type.equals("t20")) {
tabData = "";
for (int j = 0; j < tab_title.length; j++) {
if (j == 0) {
for (int k = 0; k < inn_arr.length(); k++) {
if (tab_title[0].equals(inn_arr.getString(k))) {
tabData = innings.getJSONObject(inn_arr.getString(k)) + "`";
}
}
} else if (j == 1) {
for (int k = 0; k < inn_arr.length(); k++) {
if (tab_title[1].equals(inn_arr.getString(k))) {
tabData += innings.getJSONObject(inn_arr.getString(k)) + "`";
}
}
} else if (j == 2) {
for (int k = 0; k < inn_arr.length(); k++) {
if (tab_title[2].replace("2", "superover").equals(inn_arr.getString(k))) {
tabData += innings.getJSONObject(inn_arr.getString(k)) + "`";
}
}
} else if (j == 3) {
for (int k = 0; k < inn_arr.length(); k++) {
if (tab_title[3].replace("2", "superover").equals(inn_arr.getString(k))) {
tabData += innings.getJSONObject(inn_arr.getString(k)) + "`";
}
}
}
}
}
JSONObject teams = cardObject.getJSONObject("teams");
JSONArray team_arr = teams.names();
team_name = tabTeamname.split(":");
for (int i = 0; i < team_name.length; i++) {
for (int j = 0; j < team_arr.length(); j++) {
if (team_name[i].equals(team_arr.getString(j))) {
name_of_team += teams.getJSONObject(team_arr.getString(j)) + "=";
}
}
}
}
}
catch (JSONException e){
e.printStackTrace();
}
}
else{
}
return null;
}
public void setFullUrl(String str){
match_key=str;
}
public String getFullUrl(){
return match_key;
}
public void setAccessToken(String accessToken){
this.access_token=accessToken;
}
public String getAccessToken(){
return this.access_token;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if(st_overview.equals("abandoned"))
{
DialogAbandoned ad=new DialogAbandoned(context);
ad.setDialog(short_name,msg_info+".");
}
else {
Intent intent = new Intent(context, ScoreCard.class);
intent.putExtra("tabvalue", tabVlaue);
intent.putExtra("teamName", name_of_team);
intent.putExtra("tabData", tabData);
intent.putExtra("match_key", match_key);
intent.putExtra("access_token",accessToken);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
}
}
此处,我的GETValue.java被认为是SCORMYYA卡。我从GetValue.java类中设置了分数卡的数据
public class SummaryCard extends AppCompatActivity {
Toolbar toolbar;
Button btnFullScore;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_summary_card);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Intent extras = getIntent();
btnFullScore = (Button) findViewById(R.id.FullScore);
btnFullScore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
GetValue gv = new GetValue(getApplicationContext());
gv.setFullUrl(match_key);
gv.setAccessToken(access_token);
gv.execute();
}
});
}
}
public class GetValue extends AsyncTask<String,String,String> {
private static String url="";
String match_type="";
String[] tab_title;
String[] team_name;
String bat_order="",jsonStr="";
String tabTeamname="";
String name_of_team="";
String tabData="";
String match_key="";
List<String> lst_overview=null;
public String access_token="";
public String accessToken="";
String st_overview="",short_name="",msg_info="";
Context context;
public String tabVlaue="";
public GetValue(Context context)
{
this.context=context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
match_key=getFullUrl();
accessToken=getAccessToken();
url="https://api.litzscore.com/rest/v2/match/"+match_key+"/?access_token="+accessToken;
// url="http://10.0.2.2/JSON/SaEngfullcard.php";
jsonStr=new CallAPI().GetResponseGetMethod(url);
if(jsonStr!=null){
try {
JSONObject mainObject = new JSONObject(jsonStr);
JSONObject dataObject = mainObject.getJSONObject("data");
JSONObject cardObject = dataObject.getJSONObject("card");
lst_overview=new ArrayList<>();
if(cardObject.getString("status_overview").equals("abandoned")){
if(!cardObject.isNull("msgs")) {
JSONObject msgs=cardObject.getJSONObject("msgs");
msg_info=msgs.getString("info");
}
st_overview=cardObject.getString("status_overview");
short_name=cardObject.getString("short_name");
}
else {
match_type = cardObject.getString("format");
JSONArray batting_order = cardObject.getJSONArray("batting_order");
JSONObject innings = cardObject.getJSONObject("innings");
JSONArray inn_arr = innings.names();
for (int i = 0; i < batting_order.length(); i++) {
JSONArray ining_arr = batting_order.getJSONArray(i);
tabTeamname += ining_arr.getString(0) + ":";
for (int j = 0; j < ining_arr.length(); j++) {
if (j == 0) {
tabVlaue += ining_arr.getString(j) + "_";
}
if (j == 1) {
tabVlaue += ining_arr.getString(j);
}
}
tabVlaue += ",";
bat_order = tabVlaue;
}
tab_title = bat_order.split(",");
if (match_type.equals("test") || match_type.equals("one-day")) {
for (int j = 0; j < tab_title.length; j++) {
for (int k = 0; k < inn_arr.length(); k++) {
if (tab_title[j].equals(inn_arr.getString(k))) {
tabData += innings.getJSONObject(inn_arr.getString(k)) + "`";
}
}
}
}
if (match_type.equals("t20")) {
tabData = "";
for (int j = 0; j < tab_title.length; j++) {
if (j == 0) {
for (int k = 0; k < inn_arr.length(); k++) {
if (tab_title[0].equals(inn_arr.getString(k))) {
tabData = innings.getJSONObject(inn_arr.getString(k)) + "`";
}
}
} else if (j == 1) {
for (int k = 0; k < inn_arr.length(); k++) {
if (tab_title[1].equals(inn_arr.getString(k))) {
tabData += innings.getJSONObject(inn_arr.getString(k)) + "`";
}
}
} else if (j == 2) {
for (int k = 0; k < inn_arr.length(); k++) {
if (tab_title[2].replace("2", "superover").equals(inn_arr.getString(k))) {
tabData += innings.getJSONObject(inn_arr.getString(k)) + "`";
}
}
} else if (j == 3) {
for (int k = 0; k < inn_arr.length(); k++) {
if (tab_title[3].replace("2", "superover").equals(inn_arr.getString(k))) {
tabData += innings.getJSONObject(inn_arr.getString(k)) + "`";
}
}
}
}
}
JSONObject teams = cardObject.getJSONObject("teams");
JSONArray team_arr = teams.names();
team_name = tabTeamname.split(":");
for (int i = 0; i < team_name.length; i++) {
for (int j = 0; j < team_arr.length(); j++) {
if (team_name[i].equals(team_arr.getString(j))) {
name_of_team += teams.getJSONObject(team_arr.getString(j)) + "=";
}
}
}
}
}
catch (JSONException e){
e.printStackTrace();
}
}
else{
}
return null;
}
public void setFullUrl(String str){
match_key=str;
}
public String getFullUrl(){
return match_key;
}
public void setAccessToken(String accessToken){
this.access_token=accessToken;
}
public String getAccessToken(){
return this.access_token;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if(st_overview.equals("abandoned"))
{
DialogAbandoned ad=new DialogAbandoned(context);
ad.setDialog(short_name,msg_info+".");
}
else {
Intent intent = new Intent(context, ScoreCard.class);
intent.putExtra("tabvalue", tabVlaue);
intent.putExtra("teamName", name_of_team);
intent.putExtra("tabData", tabData);
intent.putExtra("match_key", match_key);
intent.putExtra("access_token",accessToken);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
}
}
在上面的类中,我得到了从GetValue.java发送的数据
这是我的manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.angelnx.cricvilla.cricvilla">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyMaterialTheme">
<activity
android:name=".SplashScreen"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/app_name"></activity>
<activity android:name=".NotStartedMatchDetails">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity"></meta-data>
</activity>
<activity
android:name=".SummaryCard"
android:theme="@style/MyMaterialTheme"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
<activity android:name=".ScoreCard"
android:parentActivityName=".SummaryCard">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".SummaryCard" />
</activity>
<activity android:name=".PlayerInfoDetails"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
<activity android:name=".FullScore"></activity>
<!-- ATTENTION: This was auto-generated to add Google Play services to your project for
App Indexing. See https://g.co/AppIndexing/AndroidStudio for more information. -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
</manifest>
现在,我再次讨论我的问题。
问题
:按下记分卡的“后退”按钮后,我不想刷新我以前的活动(汇总卡)
如果我们想从CurrentActivity.java转到NewActivity.java,并且不希望我们的CurrentActivity.java被引用,请帮助我解决这个问题
Intent intent=new Intent(CurrentActivity.this,NewActivity.class);
startActivity(intent);
不使用finish();这是因为,我们必须从新活动回到当前活动
现在,当我们想从NewActivity返回到CurrentActivity时,在返回按钮的Click事件上只需编写finish()代码>并且不执行以下操作:
Intent intent=new Intent(NewActivity.this,CurrentActivity.class);
startActivity(intent);
因为它将重新打开您当前的活动。您的意思是:“我通过Intent将数据从Summary\u card传递到GetValue.java。我还通过Intent将数据从GetValue.java传递到Score\u card。在Score\u card中,我得到了从GetValue.java发送的数据。我解释了我的整个场景。”现在,如果GetValue.java不是一个活动,那么您是如何使用Intent将数据传递给GetValue.java的?是的,先生,实际上我的场景工作得很好,但问题是当我按下位于操作栏上的“得分卡后退”按钮时。我的摘要卡活动自动刷新。我不想刷新。请参考我的答案,希望它能帮助您。为什么要使用intent.setFlags(intent.FLAG\u ACTIVITY\u NEW\u TASK);这可能是因为我的应用程序将被删除。现在,如果你想将数据从NewActivity传递到HomeActivity或CurrentActivity,你会怎么做?等待2分钟。我会重播给你。没关系,只需完成你的任务并继续。当我按下记分卡(当前活动)的后退按钮时,我得到了空数据。你也可以使用SharedReferences这样做。