EditText에서 엔터키를 누르면 button에서 설정한 이벤트가 실행되는 리스너.

1
2
3
4
5
6
7
8
9
10
  EditTextName.setOnEditorActionListener(new EditText.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_DONE) {
                    ButtonName.performClick();
                    return true;
                }
                return false;
            }
        });
 
cs

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   private void getAppKeyHash() {
        try {
            PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md;
                md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                String something = new String(Base64.encode(md.digest(), 0));
                Log.i("Hash key", something);
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            Log.e("name not found", e.toString());
        }
    }
cs

 

 

참고 : https://kwon8999.tistory.com/entry/KAKAO-Developers-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EB%A7%8C%EB%93%A4%EA%B8%B0%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C

액티비티가 종료될 때 서비스가 같이 종료되지 않아서 발생하는 문제.

액티비티가 종료될 때 서비스를 종료하면 해결됨.

당연한 얘기지만 서비스를 생성한 액티비티에서 종료해야함~!

1
2
3
4
5
6
7
8
   @Override
    protected void onDestroy(){
        super.onDestroy();
 
        if(serviceName != null){
            unbindService(serviceName);
        }
    }
 
cs

 

 

해결방법

1. Android Studio 종료.

2. '.idea' 디렉토리 삭제.

3. '.gradle' 디렉토리 삭제.

4. '.iml' 파일 모두 삭제.

5. Android Studio 실행 -> Build/Rebuild Projects && Build/ Clean Projects 실행.

터미널 명령어

1
2
3
4
5
6
// close Android Studio
cd 프로젝트 경로
rm -rf ./.idea
rm -rf ./.gradle
find . | grep -e .iml$ | xargs rm
// use Android Studio to re-open the directory as a project
cs

 

참고 : https://stackoverflow.com/questions/37583875/org-gradle-api-tasks-taskexecutionexception-execution-failed-for-task-apptra

1. build gradle 파일에(app module) 아래 내용 추가.

1
2
3
4
5
6
7
// build.gradle(app 모듈)
 
dependencies {
    debugImplementation "com.github.brianPlummer:tinydancer:0.1.1"
    releaseImplementation "com.github.brianPlummer:tinydancer-noop:0.1.1"
    testImplementation "com.github.brianPlummer:tinydancer-noop:0.1.1"
}
 
cs

 

2. 프로젝트 구현부분에 아래 내용 추가. 나는 시작부분 onCreate()에 구현함.

1
2
3
4
5
6
7
8
9
10
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        TinyDancer.create().addFrameDataCallback(new FrameDataCallback() {
            @Override
            public void doFrame(long previousFrameNS, long currentFrameNS, int droppedFrames) {
                // do anything what you want.
            }
        }).show(this);
   }
cs

 

하위 뷰가 보일때..^^ 야매로 가리고 하위 뷰 클릭 막는법.(XML)

1
2
3
4
5
6
<FrameLayout 
    ...
    // 배경 깔기
    android:background="#333333"
    // 클릭 막기
    android:clickable="true">
cs

 

1. 터미널에서 adb 세팅 : :  https://7day.tistory.com/424

2. 

1
2
3
4
5
6
7
8
9
10
11
// 텍스트파일 UTF-8로 변환! 
iconv -t UTF-8 텍스트파일이름.txt
 
// 모든 로그 저장
adb logcat -d> 텍스트파일이름.txt
 
// 특정 태그만 검색된 로그 저장
adb logcat 태그이름:로그우선순위 *:S>텍스트파일이름.txt
 
// 예시
adb logcat decibelDataMonitor:D *:s>decibelData.txt
cs
 
 
 
cs

* 로그 우선순위 참조 : https://developer.android.com/studio/command-line/logcat?hl=ko

 

3. 따로 설정하지 않았다면 텍스트 파일은 '/user/username/'에 있음.

- Activity Root/onCreate() - 이전 액티비티

1
2
3
4
5
      // 종료
        if (getIntent().getBooleanExtra("EXIT_ROOT"false)) {
            this.finishAndRemoveTask();
            System.exit(0);
        }
 
cs

 

- Activity Main - 현재 액티비티

1
2
3
4
5
6
7
8
9
10
11
  @Override
    public void onBackPressed() {
        exitApp();
    }
 
    private void exitApp(){
        Intent i = new Intent(this, ActivityRoot.class);
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        i.putExtra("EXIT_ROOT",true);
        startActivity(i);
    }
cs

+ Recent posts