본문 바로가기

카테고리 없음

안드로이드 공부중요한것들 정리

반응형

고급위젯

1. 프로그래스바 

setprogress() = 프로그래스값 설정 

setIncrementProgessby() = 상승값

setMax() = 맥스값 

 

인텐트  ( 명시적 , 암시적 ) chap7

1. 인텐트 보내기

단방향 보내기 : startActivity(intent)

양방향 보내고 받기 : startActivityForResult(intent, NEWACTIVITY);  뒷 부분은 상수 값으로

 static final intNEWACTIVITY=1000 이렇게 미리 만들어주고 답이 올때 이 상수값으로 어디서 왔는지 확인한다 

2. 값 받기 

intent = getIntent();

3.값 뜯어보기 ( 키값으로 ) 

intent.getStringExtra("activity");

4. 답장 보내기 

setResult(RESULT_OK,intent); 

5. 답장온거 확인하는 메소드 (답장온거 이 메소드의 리퀘스트 코드와 리설트 코드로 확인해보기 ) 

protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data);

 

 

6 . 다른 패키지로 인텐트 보내기 

ComponentName componentName = new ComponentName("com.example.another" , //받을놈의 패키지와 클래스 "com.example.another.MainActivity");

7. 인텐트에 컨포넌드 장착  

intent.setComponent(componentName); 

나머지는 똑같이 하면 된다. 

직렬화 

primitive타입 , Serializable ,Parcel , Parcelble , Bundle, Intent 

이건 직접 봐야 이해 될거 같다 .

액티비티 생명주기 chap8

1. 실행 흐름의 따른 데이터 저장과 데이터 불러오기 

protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) 데이터 불러오기 (지금 사용불가 ) 

protected void onSaveInstanceState(@NonNull Bundle outState) 데이터 저장하기  (지금 사용불가 ) 

 

2. 데이터 저장하기 onPause()에서 saveData메소드로  SharedPreferences 사용하여

public void saveData(){

// 데이터를 저장하는 메소드,  읽기전용인지 읽고쓰고 다른곳에서도 사용할것인지에 따라 달라짐 
SharedPreferences sharedPreferences = getSharedPreferences("pref" , MODE_PRIVATE); //  ( 이름과 , 모드 )  SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("Score" , 10000);
editor.putString("msg", "나는데이타"); // 번들형 키와 값
editor.commit(); // 완료했다는 것!

 

3. 데이터 불러오기  onResume 상태에 오면 데이터 불러오기 

protected void onResume() {
super.onResume();
SharedPreferences sharedPreferences = getSharedPreferences("pref" , MODE_PRIVATE);
score =sharedPreferences.getInt("Score" , 0);
if (score != 0 ) {restoreData();}
}

4.데이터 초기화하기 onDestroy 여기에서 해주면 된다 

//액티비티가 종료 될때 값초기화 시켜주는 것 ( 안하면 나중에 다시 왔을때 값이 남아있다 )
SharedPreferences sharedPreferences = getSharedPreferences("pref" , MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear(); // 값을 초기화 하는 것
editor.commit(); // 완료했다는 것!

 

 

태스크 

 


사용자이벤트처리 &리소스 활용 chap10 ( 자세한건 책보고 찾아쓰자 별로 안중요함 ... ) 

1.터치 이벤트 ( 눌럿을떄 )

public boolean onTouch(View v, MotionEvent event) = 터치했을때 이벤트

2.키 이벤트 (핸드폰의 키가 눌렸을떄 )                   

3.제스쳐이벤트 (터치 이벤트 중 일정한 패턴을 만들어내는 ) 

4.포커스

5.화변 방향 변경 

매니패스트에 해당 액티비티에 이렇게 작성해주면 

public void onConfigurationChanged(@NonNull Configuration newConfig) 이거 호출됨 

android:configChanges="orientation|screenSize"> <!-- 화면이 회전될때 onConfiguration 메소드 호출 -->

-액티비티수명주기 1 편보면 만들고 사용한부분참고

 



인플레이션 chap11 

1. 1번 방법 레이아웃인플레이터 만들기  (예전에 사용하던 방법 )

LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);

 

2.2번방법 레이아웃인플레이터 만들기  (새로운 방법)

컨택스트 정보가 있을땐 LayoutInflater inflater = getLayoutInflater()

컨택스트 정보가 없을땐 LayoutInflater inflater = getLayoutInflater().from(context) 이렇게 사용

 

3. 인플레이션 하기

// 1)해당 레이아웃 2)넣을 곳 3)그냥 true ( 붙이겠다는거에 동의같은 의미 )
inflater.inflate(R.layout.sub , layout ,true);


서비스  

1.서비스 생명주기

public void onCreate() = 서비스 생성시 딱한번 호출 1번 

public int onStartCommand(Intent intent, int flags, int startId) =  생성시 호출 (다시 시작해도 여기호출 ) 2번  

public void onDestroy() = 마지막 서비스 종료시 호출 3번

 

2. 서비스 시작과 종료 (똑같이 인텐트로 서비스 시작 )

startService()

stopService()


브로드캐스트 ( 시스템에서 정보 받아와서 일처리 하던지 , 어플간에 신호 주고받으면서 일처리할때 도 사용됨 ) 

1. 리시버등록  

브로드캐스트 객체화 하고  필터로 액션 달아주고 브로그캐스트 수신기 실행 

broadcastReceiver = new MyReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(MyReceiver.MY_ACTION);
registerReceiver(broadcastReceiver,filter);

 

2. 콜백 메소드 (방송수신시 자동 실행 되는 메소드 ) 

public void onReceive(Context context, Intent intent) {}

 

3. 브로드캐스트 종료 

abortBroadcast();

 

 

브로드캐스트는 따로 자바파일만들어서 해도 되고 11장 QUIZ 에서 사용한거 처럼 이너 클래스 만들어서 해주어된다

위험 권한 & 알림 ( 유저 퍼미션 ) 

1. 위험권한 물어보는 코드 
if(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(this , new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},100);
}

 

2. 11장브로드캐스트SMS 보고 참고 (SMS 유저권한 매니패스트에 작성  ) 

<uses-permission android:name="android.permission.RECEIVE_SMS"/> SMS
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>  부팅시

등 다양한것들 있음 .

 

전화 수신 , 발신 ,배터리 상황 , 스마트폰 전원공급시 등등 여러가지 들이 있음 참조해서 사용하면 된다.  

다이얼로그 

 

알람 (정리한거 보고 찾아서 쓰자 ) 

NotificationManager manager; =  알림을 시스템에 발생시키는 SystemService
NotificationCompat.Builder builder; =알림을 다양한 정보로 생성

 

프래그먼트 chap11 

1 . 선택한 항목이 프리퍼런스에 자동으로 저장된다 //저장해놓은것들을 가져올려면 프리퍼런스 매니저를 통해

prfs에 참조해줌   prfs = PreferenceManager.getDefaultSharedPreferences(getActivity());

 

2. 사용자가 버튼을눌러 자동저장된 값이 번경되면 실행 되는 메소드 

SharedPreferences.OnSharedPreferenceChangeListener prefListener = new SharedPreferences.OnSharedPreferenceChangeListener() {

 

3.다른 프래그먼트화면을 띄울때 프래그먼트 화면은 스스로 화면 전환이 안되기 때문에

메인액티비티한테 해달라고 보내는것이다 . (콜백함수) 인텐트로 보내서 메인에서 작업처리

public void onNavigateToScreen(PreferenceScreen preferenceScreen) 

 

4. 프래그먼트 시작  ( 매니저 참조.트렌젝션시작.추가(add)or교체(replace)or삭제(remove).(셋팅해줄곳,프래그먼트).시작

getSupportFragmentManager().beginTransaction().replace(android.R.id.content,settingPreferenceFragment,null).commit();

반응형