“ AccessibilityService类会释放其成员变量,如何在不使变量成为静态或将类更改为工厂类的情况下保持我的值”

问题描述

公共类CallForward扩展了AccessibilityService实现GetUSSD {

GetUSSDString getUSSD= new GetUssdFromAccessibility();

public  String TAG = AccessibilityService.class.getSimpleName();

**可访问性要求此构造函数,以便它可以在访问该类时随时构建此类****
公开CallForward(){}

**但我想使用此Activity实例来实现意图**
public CallForward(Activity activity){
    getUSSD.getContext(activity);
}


@Override
public void onAccessibilityEvent(AccessibilityEvent event) {

    Log.e(TAG,"onAccessibilityEvent");

    AccessibilityNodeInfo source = event.getSource();
    /* if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED && !event.getClassName().equals("android.app.AlertDialog")) { // android.app.AlertDialog is the standard but not for all phones  */
    if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED && !String.valueOf(event.getClassName()).contains("AlertDialog")) {
        return;
    }
    if(event.getEventType() == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED && (source == null || !source.getClassName().equals("android.widget.TextView"))) {
        return;
    }
    if(event.getEventType() == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED && TextUtils.isEmpty(source.getText())) {
        return;
    }

    List<CharSequence> eventText;

    if(event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) {
        eventText = event.getText();
    } else {
        eventText = Collections.singletonList(source.getText());
    }

    String text = processUSSDText(eventText);

    if( TextUtils.isEmpty(text) ) return;

    // Close dialog
    performGlobalAction(GLOBAL_ACTION_BACK); // This works on 4.1+ only
    Log.d(TAG,text);
    **// i also used an observer design patter to fish this data out but i still get null in my update  method**
     <br/><br/>
    getUSSD.getUssd(text);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        disableSelf();
    } 
} 

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...