【问题标题】:Android - Call a method from another class [duplicate]Android - 从另一个类调用方法[重复]
【发布时间】:2015-02-22 07:52:35
【问题描述】:

我有两个班级,MainActivity.javaSMSMonitorService.java

收到短信后,我想在MainActivity class中拨打mySearch()

MainActivity.java:

//public void myClickHandler(View view) {
public void mySearch() {

    // Gets the URL from the UI's text field.
    String stringUrl = endPointES + urlUser + "&redirects&continue=";
    //String stringUrl = urlText.getText().toString();
    ConnectivityManager connMgr = (ConnectivityManager)
            getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
    if (networkInfo != null && networkInfo.isConnected()) {
        new DownloadWebpageTask().execute(stringUrl);

    } else {
        textView.setText("No network connection available.");
        Toast.makeText(getApplicationContext(), "No network connection available", Toast.LENGTH_LONG).show();
    }
}

SMSMonitorService.java:

private final BroadcastReceiver receiver1 = new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        Log.i(TAG, "WORKS");
        if (action.equals("android.provider.Telephony.SMS_RECEIVED")) {
            Log.i(TAG, "SMS Broadcast Received");
            Bundle bundle = intent.getExtras();
            SmsMessage[] messages = null;
            String message = "";
            String second = "";

            if (bundle != null) {
                Object[] pdus = (Object[]) bundle.get("pdus");
                messages = new SmsMessage[pdus.length];
                for (int i = 0; i < messages.length; i++) {
                    messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                    if (messages[i].getMessageBody().contains("W ") || messages[i].getMessageBody().contains("w ")) {
                        message = messages[i].getMessageBody();
                        StringTokenizer tokens = new StringTokenizer(message, " ");
                        String first = tokens.nextToken();
                        second = tokens.nextToken();
                        number = messages[i].getOriginatingAddress();
                        Toast.makeText(context, second, Toast.LENGTH_SHORT).show();                            
                    }
                }

SMSMonitorService Class收到短信时如何调用mySearch()方法?

【问题讨论】:

  • MainActivity ma = new MainActivity(); ma.mySearch(); // :) 另一种方式。使 mySearch() 公共静态,然后调用 MainActivity.mySearch(); // :)
  • 谢谢!但我不能将 mySearch() 设为公共静态,因为 DownloadWebpageTask() “无法从静态上下文中引用”。感谢您的提前。

标签: java android android-intent call httpurlconnection


【解决方案1】:

我希望这会有所帮助。

MainActivity activity = new MainActivity()
activity.mySearch();

【讨论】:

    猜你喜欢
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 2012-06-02
    相关资源
    最近更新 更多