androidʵÏÖqqÓÊÏä¶à¸öͼ±êЧ¹û

來源:互聯網
上載者:User

androidʵÏÖqqÓÊÏä¶à¸öͼ±êЧ¹û

ǰ¼¸Ì죬µ°Ì۵ļ¼ÊõÖ÷¹Ü·ÇҪʵÏÖÀà似×°Ò»¸öqqÓÊÏ䣬Ȼºó¿ÉÒÔʹÓÃqqÓÊÏäÈÕÀúµÄÄÇôһ¸ö¶«Î÷£¬Ï൱ÓÚÒ»¸öÓ¦ÓÃÉú³ÉÁ½¸öͼ±ê£¬µ«ÊDz»Í¬µÄÊǵã»÷²»Í¬µÄͼ±ê¿ÉÒÔ½øÈ벻ͬµÄÓ¦Óã¬ÈçÏÂͼµÄЧ¹û¡£





<†·Ÿ"http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+1eLQp7n7sNm2yMHL0rvM7NKysrvWqrXAyOe6ztfFytajrNa7xNzX1Ly6uOOjrLfWz+3Su8/C19S8ur3ivvbV4rj2zsrM4rXEuf2zzKOstPO4xcrH1eLR+bXEPC9wPgo8cD4xLsrXz8i31s72wLTLtdX7uPbXwMPmbHVuY2hlcsrH0ru49mFjdGl2aXR5o6zL+dPQtcTNvLHqtrzKx9K7uPawtMWltvjS0aOsteO79828seq+zcrHteO799K7uPawtMWlyLu688il1rTQ0GFjdGl2aXR5PC9wPgo8cD4yLrLpv7RsYXVuY2hlciBmcmFtZXdvcmuy47XE1LS0+sLro6xodHRwczovL2FuZHJvaWQuZ29vZ2xlc291cmNlLmNvbS9wbGF0Zm9ybS9wYWNrYWdlcy9hcHBzL0xhdW5jaGVyLyYjNDM7L21hc3Rlci9zcmMvY29tL2FuZHJvaWQvbGF1bmNoZXIvTGF1bmNoZXIuamF2YSAgwre+tsrH1eK49qOssum/tL/Jzai5/betx72ho9XiwODG5Mq1us3U29fUvLrQtLXEwODSssO7ybbH+LHwLiAg0vLOqkxhdW5jaGVyyse8zLPQwcthY3Rpdml0ebXEPC9wPgo8cD48L3A+CjxwcmUgY2xhc3M9"brush:java;">public final class Launcher extends Activity implements View.OnClickListener, OnLongClickListenerÆä´ÎÎÒÃÇÖ»ÐèÒªÕÒµ½clickʼþ¾ÍÐУ¬ÔÚÕâÀïËû»áÅжϱ»µã»÷viewÊÇÎļþ¼Ð»¹ÊÇÓ¦ÓóÌÐò£¬

public void onClick(View v) {        Object tag = v.getTag();        if (tag instanceof ApplicationInfo) {            // Open shortcut            final Intent intent = ((ApplicationInfo) tag).intent;            startActivitySafely(intent);        } else if (tag instanceof FolderInfo) {            handleFolderClick((FolderInfo) tag);        }    }

½ÓÏÂÀ´¿´¿´startActivitySafely£¬ÆäʵÔÚÕâÀï¾ÍÊÇ´¦ÀíÁËÏÂÒì³£ºÍÌí¼Óһиöflag£¬µ«ÊÇflagÊÇÖØµã¡£½âÎöÀ´»á¼ÌÐøËµflag

    void startActivitySafely(Intent intent) {        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        try {            startActivity(intent);        } catch (ActivityNotFoundException e) {            Toast.makeText(this, R.string.activity_not_found, Toast.LENGTH_SHORT).show();        } catch (SecurityException e) {            Toast.makeText(this, R.string.activity_not_found, Toast.LENGTH_SHORT).show();            e(LOG_TAG, "Launcher does not have the permission to launch " + intent +                    ". Make sure to create a MAIN intent-filter for the corresponding activity " +                    "or use the exported attribute for this activity.", e);        }    }
ÕâÀïÆäʵ¶¼ºÜ¼òµ¥£¬¾ÍÊÇÌí¼ÓÒ»¸öflag£¬Õâ¸öflag×÷Óúܴó£¬×Ðϸ½²Ò»ÏÂ

FLAG_ACTIVITY_NEW_TASKÉèÖôË״̬£¬Ê×ÏÈ»á²éÕÒÊÇ·ñ´æÔںͱ»Æô¶¯µÄActivity¾ßÓÐÏàͬµÄÇ׺ÍÐÔµÄÈÎÎñÕ»£¨¼´taskAffinity£Èç¹ûÓÐÖ±½Ó°ÑÕâ

¸öÕ»ÕûÌåÒÆ¶¯µ½Ç°Ì¨£¬²¢±£³ÖÕ»ÖеÄ״̬²»±ä£¬¼´Õ»ÖеÄactivity˳Ðò²»±ä£¬Èç¹ûûÓУ¬Ôòн¨Ò»¸öÕ»À´´æ·Å±»Æô¶¯µÄactivity. Õâ¾ÍÊÇΪʲôÎÒÃǵã»÷home¼üÖºóÈ»ºóÔÙµã»÷ͼ±ê»á»Ö¸´µ½ÔÀ´µÄ״̬£¬¶ø²»ÊÇÖØÐÂÈ¥´´½¨Ò»¸öactivity¡£

ͨ¹ýÒÔÉϵķÖÎö´ó¸ÅÄÜʵÏÖÕâÑùµÄ¶«Î÷ÁË£¬ÏÖÔÚÎÒÖ»ÐèÒªÈÃËûÃÇÔËÐÐÔÚ²»Í¬µÄÈÎÎñÕ»ÀïÃæ¼´¿É£¬Ï໥ּ䲻Äܹ»Ó°Ïì¡£ÏÂÃæÊÇ´ó¸ÅʵÏÖµÄÁ÷³Ì£¬½ö¹²Î¿¼£¬ÒòΪÕâ¸öÖ»ÊÇ»ù´¡µÄÄ£ÐͶøÒÑ¡£Êµ¼ÊÉÏÎÒÃÇÔÚÀïÃæ¼ÓÁ˺ܶàÒµÎñ¡£


´ó¸ÅµÄ˼·¾ÍÕâÑùÒ»ÏÂÊÇ´úÂëµÄʵÏÖ¡£Ö÷ÒªÊÇ·ÅÈëÁËÒ»¸ö×ֶνÐ×öclassÈ»ºóµã»÷ͼ±êµÄʱºò»ñÈ¡Õâ¸ö×ֶΣ¬´ò¿ªÏàÓ¦µÄactivity¼´¿É

public class BootupActivity extends Activity {    private Handler handler  = new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            switch (msg.what)            {                case 1:                    break;            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Log.i("BootupActivity", "OnCreate");        String className = getIntent().getStringExtra("Class");        if (className==null) {            addShortcutToDesktop(BootupActivity.this.getString(R.string.shopping_app_name), R.drawable.shopping_ic_launcher,                    Activity1.class.getName(), Activity1.class);            addShortcutToDesktop(BootupActivity.this.getString(R.string.xiaohua_app_name), R.drawable.xiaohua_ic_launcher,                    Activity2.class.getName(), Activity2.class);            startAppProcess(Activity1.class.getName());        } else {            startAppProcess(className);        }    }    private void addShortcutToDesktop(String lable, int iconRes, String destClassName, Class bootupClass) {        Intent shortcut = new Intent(                "com.android.launcher.action.INSTALL_SHORTCUT");        // no rebuilding        shortcut.putExtra("duplicate", false);        // shortcut.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);        // setting name        shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, lable);        // setting icon        if (iconRes!=0) {            shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,                    Intent.ShortcutIconResource.fromContext(this, iconRes));        }        // create a broadcast intent        Intent intent = new Intent(this, bootupClass);        intent.putExtra("Class", destClassName);        intent.setAction(Intent.ACTION_MAIN);        // setting intent        shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);        // send broadcast        sendBroadcast(shortcut);    }    private void startAppProcess(String bootupClass) {        ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);        Intent i = new Intent();        i.setComponent(new ComponentName(this.getPackageName(), bootupClass));        i.putExtra("class", bootupClass);        this.startActivity(i);    }}


ÒÔÏÂÊÇÐèÒªÔÚÅäÖÃÎļþÀïÃæÅäÖõģ¬ÐèҪעÒâµ½µÃʱandroid:taskAffinityÕâ¸öÊôÐÔ£¬²»Í¬µÄactivityÐèÒªÅäÖò»Í¬µÄ¡£°ÑÖ÷ÒªµÄactivityºÍĬÈÏ´ò¿ªµÄactivityµÄÇ׺ÍÐÔÅäÖóÉÒ»ÑùµÃ¡£±£Ö¤µã»÷×ÀÃæÍ¼±êºÍÓ¦ÓÃͼ±êÄܹ»´ò¿ªÏàͬµÄÈÎÎñÕ»¡£È»ºó×¢Òâ°ÑÖ÷ÒªµÄBootupActivity·ÅÔÚµÚÒ»¸öλÖá£ÆäËûµÃ¶¼ÐèÒª¼ÓÉÏÒ»¸öaction²¢ÇÒºÍÖ÷ÒªµÄÏàͬ¡£


                                                                                                                                                                                                               


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.