노무현 전 대통령 서거 추모글 남기기

ArrayList 의 구조를 가지고 있는 배열을 쓰기..


검색해보니까 ArrayList 를 배열로 바꾸는 것만 잔뜩있고 아니면 ArrayList<Stri ng[]> 이런 구조 얘기만 있고해서 헤메고 있었다..


그러다 얻게 된 해결책


https://stackoverflow.com/questions/7131652/generic-array-creation-error/23034391


링크에 좋아요 엄청받은 것을 적용해 보았더니 안된다..


두번째


First, let

public static ArrayList<myObject>[] a = new ArrayList[2];

Then initialize

for(int i = 0; i < a.length; i++) {
     a[i] = new ArrayList<myObject>();
}

이렇게 하니까 잘된다.


세번째는 선언하는 방식만 변경이 있을 뿐 초기화는 어짜피 따로 해줘야 동작하더라..


public static ArrayList<myObject>[] a = (ArrayList<myObject>[])new ArrayList<?>[2];
public static ArrayList<myObject>[] a = (ArrayList<myObject>[])new ArrayList[2];


Posted by Kelly Cook
,

어플 개발중에 다른 어플과 연동을할 일이 있어서 sendBroadcast(intent)를 해서 사용하는데


가끔 실행을 해도 먹어 버리고 실행이 안된다.


그전에 비슷한 경우가 있었는데 이번 경우는 BroadcastQueue: Background execution not allowed: receiving Intent{


어쩌구 저쩌구라고 로그가 찍힌다.


대충 찾아보면 Android 8.0 Oreo에서 배터리 절약을 위해 암시적 Broadcast가 제한이 있다는거 같다.


근데 주고 받을 앱이 8.0이 아니면 문제 없다는거 같은데 OS가 8.0인 폰에서 해도 나오는 듯하다.


구글링을 해봤는데 제한이 있을거다 이런 얘기만 있고 해결책이 없다.


리시버를 받는 곳에 퍼미션을 지정해서 부르는 곳에 같이 넣어준다면 된다는 얘기가 있는데 받는 곳은 일단 내가 바꿀 수가 없어서 패쓰..


더 찾아보다가

private void sendImplicitBroadcast(Context ctxt, Intent i) 

PackageManager pm=ctxt.getPackageManager(); 

List<ResolveInfo> matches=pm.queryBroadcastReceivers(i, 0);

for (ResolveInfo resolveInfo : matches) {

Intent explicit=new Intent(i);

ComponentName cn= new ComponentName(resolveInfo.activityInfo.applicationInfo.packageName, resolveInfo.activityInfo.name);

explicit.setComponent(cn);

ctxt.sendBroadcast(explicit);

}

}

이런게 있어서 적용해 봤는데 일단 된다.


일단 적용해보고 해결이 됐으면 좋겠네..

Posted by Kelly Cook
,

http://www.iata.org/pressroom/pr/Pages/2017-10-09-01.aspx

http://www.iata.org/pressroom/pr/Documents/2017-10-09-01-sp.pdf

http://www.traveldaily.co.kr/news/articleView.html?idxno=11818



▲ 지역 마켓 쉐어


▲항공사 순위


▲노선 순위 (국제선)
▲노선 순위 (국내선)







 


Posted by Kelly Cook
,