2011-08-21 5 views
1

EDIT : 더 간단한 코드를 사용하십시오. 최근까지 (내 성화에서 6.0.0.600으로 업그레이드 한) 블랙 베리 앱을 삭제할 수있었습니다. 이제 javaloader -u erase (사용중인 모듈)를 사용하고 UI 컨텍스트 메뉴 또는 실제 메뉴에 삭제 옵션이없는 경우에도 사용할 수 없습니다. 아래의 코드는 시작할 때 "startVibrate"매개 변수가있는 대체 엔트리 포인트가있는 앱 설명자가 필요합니다. 진입 점 코드는 아래와 같습니다.여러 진입 점이있는 경우 응용 프로그램을 삭제할 수 없습니다.

package mypackage; 

import net.rim.device.api.system.Alert; 
import net.rim.device.api.system.ApplicationDescriptor; 
import net.rim.device.api.system.ApplicationManager; 
import net.rim.device.api.ui.container.MainScreen; 
import net.rim.device.api.ui.UiApplication; 

/** 
* This class extends the UiApplication class, providing a 
* graphical user interface. 
*/ 

public class ScheduleAppDemo extends UiApplication 
{ 
    public static void main(String[] args) 
    { 
     if (args != null && args.length > 0 && "startVibrate".equals(args[0])) 
     { 
      scheduleVibrate(); 
     } 
     else 
     { 
      ScheduleAppDemo app = new ScheduleAppDemo(); 
      app.enterEventDispatcher(); 
     } 
    } 
    public ScheduleAppDemo() 
    { 
     ScheduleAppDemoScreen screen = new ScheduleAppDemoScreen(); 
     pushScreen(screen); 
    } 

    public class ScheduleAppDemoScreen extends MainScreen 
    { 
     public ScheduleAppDemoScreen() 
     { 
      setTitle("Schedule app demo"); 
     } 
    } 

    private static void scheduleVibrate() 
    { 
     Alert.startVibrate(2550); 
     ApplicationDescriptor current = ApplicationDescriptor. 
     currentApplicationDescriptor(); 
     current.setPowerOnBehavior(ApplicationDescriptor.DO_NOT_POWER_ON); 
     ApplicationManager manager = ApplicationManager.getApplicationManager(); 
     manager.scheduleApplication(current, System.currentTimeMillis() 
       + 60000, true); 
    } 
} 

기본적으로 이것은 매분마다 진동한다는 것을 보여줍니다. 유감스럽게도 애플리케이션 관리자는 백그라운드 프로세스가 실행되는 동안 그 프로세스가 계속 실행되는 것으로보고, 실행될 시간이되면 다시 호출합니다. RIM의 샘플 앱입니다. 응용 프로그램 descriptor.xml에서 모든 대체 진입 점을 삭제하면 응용 프로그램을 삭제할 수 있습니다. 그것을 수정하고 대구를 다시로드 한 다음 삭제하는 것 이외에는 앱을 삭제하려면 어떻게해야합니까?

답변

1

'올바른'동작은 대체 엔트리 포인트가있는 응용 프로그램이 필드에서 올바르게 작동하는 방식입니다.

응용 프로그램에 대체 진입 점이있는 경우 삭제하면 해당 항목 만 삭제됩니다. 실제 삭제는 장치가 다시 시작되고 .cods가 다시로드 될 때 발생합니다.

사용자가 백그라운드에서 실행중인 프로세스가있는 대체 진입 점이있는 응용 프로그램을 삭제하려고하면 다시 시작될 때 응용 프로그램이 제거된다는 것을 알리는 대화 상자가 항상 팝업됩니다. 그들이 지금 재부팅 할 것인지 묻습니다.

장치가 재부팅 될 때까지 백그라운드 프로세스가 계속 실행됩니다.

+1

하지만 문제는 실제로 삭제할 단추가 없다는 것입니다. 마우스를 올려 놓고 컨텍스트 메뉴를 가져 오거나 메뉴 키를 누르면 옵션 메뉴 -> 앱 관리에서 어느 곳에도 "삭제"옵션이 없습니다. 스크린 샷보기 : http://dftr.ca/downloads/fail.png – DFTR

+1

Ah. 최근에 6.0.0.600으로 업데이트되었습니다. 우리는 특정 OS 릴리스에서 고객이 '문제'에 관한 보고서를 보았습니다. 여러분의 응용 프로그램에 대한 삭제 옵션이 사라진 이유에 대해 좀 더 생각해 보겠습니다.하지만 6.0.0.600과 관련하여 과거의 문제는 아닙니다. –

+0

이것은 수정 된 적이없는 버그입니다. – DFTR

관련 문제