2017-12-20 27 views
-1

나는 내 응용 프로그램에 문제가있어서 해결하기 위해 무엇을해야할지 모르겠다. 나는 안드로이드를 처음 접하고 자바를 이해하지 못한다.앱을 종료 한 후 내 앱을 대시 보드로 시작하려면 어떻게해야합니까?

앱은 목록이 포함 된 여러 페이지로 구성되며 모두 모두 해당 페이지를 탐색 할 수있는 회 전자가 있습니다. 회 전자에서 항목을 선택하면 해당 페이지가 열립니다. 페이지간에 호핑하는 것뿐만 아니라 회 전자에는 '앱 종료'옵션이 있습니다.

페이지 호핑은 문제가 없습니다. 내가 가진 문제는 '앱 종료'코드입니다. 내 기기에서 홈 키를 누르거나 회 전자에서 앱 종료를 탭하여 앱을 종료 한 다음 앱을 다시 시작하면 대시 보드가 아닌 마지막으로 본 페이지에서 열립니다. 이 문제를 해결하려면 기기의 홈 키를 길게 누른 다음 최근에 사용한 목록에서 앱을 스 와이프해야합니다.

기기의 홈 키를 누르거나 회 전자에서 Exit App을 탭한 다음 앱을 다시 시작하여 앱을 종료 할 때 대시 보드에서 열리는 방법이 있습니까?

아무도 도와 줄 수 있습니까?

감사합니다. 코드에서

문자열 코드 ...

<string-array name="TheList"> 
    <item>Tap Here For List…</item> 
    <item>Cheese</item> 
    <item>Planets</item> 
    <item>Cars</item> 
    <item><b>Back To Dashboard…</b></item> 
    <item><b>EXIT APP</item> 
</string-array> 

사건 번호 (1-4) 아래 스피너 항목 선택과 열 페이지입니다.

사례 5에서 앱을 종료합니다. 대시 보드에서 앱이 다시 시작되는 것을 방지하는 코드에 오류가 있다고 가정합니다.

자바 코드 ...

package com.example.acer.MyKitList; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.Spinner; 

public class Carrying extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.page1); 


    // Spinner element & Spinner click listener 
    Spinner Spinner = (Spinner) findViewById(R.id.Spinner1); 

    Spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 


     @Override 
     public void onItemSelected(AdapterView<?> arg0, View view, int position, long row_id) { 

     switch (position) { 
      case 1: 
     Intent a = new Intent(Dashboard.this, Cheese.class); 
     startActivity(a); 
     finish(); 
     break; 
      case 2: 
     Intent b = new Intent(Dashboard.this, Planets.class); 
     startActivity(b); 
     finish(); 
     break; 
      case 3: 
     Intent c = new Intent(Dashboard.this, Cars.class); 
     startActivity(c); 
     finish(); 
     break; 
      case 4: 
     Intent d = new Intent(Dashboard.this, Dashboard.class); 
     startActivity(d); 
     finish(); 
     break; 

      case 5: 
     Intent intent = new Intent(Intent.ACTION_MAIN); 
     intent.addCategory(Intent.CATEGORY_HOME); 
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
     startActivity(intent); 
     System.exit(0); 
     finish(); 

     } 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
     } 
    }); 
    } 

    @Override 
    public void onBackPressed() { 
    finish(); 
    } 
} 
+1

이 활동의 ​​기본 라이프 사이클이다. 홈 버튼을 누르면 Activity가 일시 중지 상태로 다시 열리면 다시 시작됩니다. 나는 당신이 기본 행동으로 엉망이 될 것이라고 생각하지 않는다. – ADM

+1

* Android를 처음 사용하고 Java에 대해 이해하지 못합니다. * - 처음에는 경험이 없습니까? 당신이 자바를 이해하지 못한다면 멀리 가지 않을 것입니다. –

+0

위에서 말했듯이 당신은 활동 라이프 사이클을 망치면 안됩니다. 앱 종료 버튼을 처리하면됩니다. [This] (https://stackoverflow.com/questions/6330260/finish-all-previous-activities)를 읽으면 아이디어를 얻을 수 있습니다. – ADM

답변

0

은 수업

@Override 
protected void onResume() { 
    super.onResume(); 
    //Start Dashboard Activity here 
    Intent a = new Intent(context, Dashboard.class); 
    startActivity(a); 
    finish(); 
    } 
} 

이 문제가 하드가 해결됩니다 모든이 조각을 넣어.

+0

감사합니다 아쿠아 4.ADM이 준 링크에서 얻은 몇 줄을 놓쳤습니다. 여기에는 Intent = 새로운 Intent (컨텍스트, Dashboard.class); – Nodens

+0

@Nodens 이제 문제가 해결되었습니다 :) 나는 엄지 손가락을 주셔서 감사 드리며 대답을 수락하십시오. –

1

답 :

case 5: 
Intent startMain = new Intent(Intent.ACTION_MAIN); 
startMain.addCategory(Intent.CATEGORY_HOME); 
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(startMain); 
Intent intent = new Intent(getApplicationContext(), MainActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
finish(); 
System.exit(0);